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 主外关系键中,级联删除,也就是当删除主表的数据时候从表中的数据也随着一起删除,以保证一致性.