Django2.0报错之外键错误
2018-07-16 本文已影响20人
虫yu
执行:
python3 manage.py migrate
或者
python3 manage.py runserver
报错:
class Tag(models.Model):
File "/Users/ypn-mac-02/AllMe/test/HelloWorld/TestModel/models.py", line 15, in Tag
contact = models.ForeignKey(Contact)
TypeError: init() missing 1 required positional argument: 'on_delete'
原因:
在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题。
解决办法:
修改models.py文件中的外键设置,添加on_delete=models.CASCADE
class Tag(models.Model):
#contact = models.ForeignKey(Contact)
contact = models.ForeignKey('Contact', on_delete=models.CASCADE)
name = models.CharField(max_length=50)
def __unicode__(self):
return self.name
参考资料: