Models里面的外键字段,没有设置on_delete属性,建表时会报错
来源:3-6 migrations原理及表生成
青了葱的老王
2018-02-18
Models里面的外键字段,没有设置on_delete属性,在makemigrations时,就会立即报错,我网上搜了下,除了补齐之外没有别的办法。不知道使用课程里面的代码的时候,大家是怎么做到顺利建表的?
4回答
-
易易追随者
2018-08-13
解决办法:
在所有带有外键的字段中:
1:如果有 null=True 参数,则添加语句 on_delete=models.SET_NULL
2:如果没有 null=True 参数,则添加语句 on_delete=models.CASCADE
也就是说所有外键字段中必须设定 on_delete = xxxxx 参数。
原因on_delete=models.SET_NULL:如果外键对象被删除则当前的字段被设置为 null,对象不会一起被Django删除,只是将外键表示为 null。
on_delete=models.CASCADE:如果外键对象被删除,则当前对象与外键对象一起被删除。
具体解释可参见:
https://medium.com/@ajrbyers/django-fk-on-delete-defaults-to-cascade-1c1506aae7c7
另外,所有字段必须设定 max_length 字段,否则报错。
最后迁移成功。
012018-08-14 -
bobby
2018-02-22
目前不要使用django2.0 会遇到一些问题
00 -
青了葱的老王
提问者
2018-02-18
仅在Django2.0.2出现这个问题,1.11应该就没问题了吧。。。。
00 -
青了葱的老王
提问者
2018-02-18
解决办法的参考文档
00
Python前后端分离开发Vue+Django REST framework实战
2873 学习 · 2461 问题
相似问题