问题如下图:

解决办法:
board = models.ForeignKey(Board, related_name='topics', on_delete=models.CASCADE)
在外键后面加上on_delete 属性即可
原因:
在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错。
拓展:
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
CASCADE:级联删除。
PROTECT:会报完整性错误。
SET_NULL:会把外键设置为null,前提是null=True。
SET_DEFAULT:设置为默认值。
SET():调用外面的值,可以是一个函数。
一般情况下使用CASCADE就可以了。
本文解决了Django 2.0中定义外键时出现的错误,详细介绍了on_delete参数的五个选项及其作用,如级联删除、设置为空等,帮助读者正确配置外键关系。
1042

被折叠的 条评论
为什么被折叠?



