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

参考资料:

https://www.cnblogs.com/phyger/p/8035253.html

上一篇下一篇

猜你喜欢

热点阅读