TypeError: __init__() missing 1 required positional argument: ‘on_delete’ 的解决.

django by exapmple, 第12页 第14行,

author = models.ForeignKey(User, related_name='blog_posts')

执行 py manage.py makemigrations blog 提示: author = models.ForeignKey(User, related_name=’blog_posts’) TypeError: __init__() missing 1 required positional argument: ‘on_delete’ 这个错误以前见过, 加上 on_delete=models.CASCADE 就可以了

author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')

成功:

Migrations for ‘blog’:
blog\migrations\0001_initial.py
– Create model Post

解释, 需要在Foreign的第二参数中加入on_delete=models.CASCADE  主外关系键中,级联删除,也就是当删除主表的数据时候从表中的数据也随着一起删除,以保证一致性.

原文链接:,转发请注明来源!
评论已关闭。