Django2.0报错之外键错误

执行:

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚...
    riverstation阅读 2,276评论 0 8
  • 一、Django框架前言知识: 1、C/S和B/S的区别: C/S结构软件:客户端/服务端软件,即客户端要自己下载...
    月下独酌123阅读 5,256评论 0 36
  • 开发流程  创建 Django 项目 创建应用 模型 数据库配置 数据库表的定义 定义模型...
    流蓝浅阅读 626评论 0 1
  • 1.创建虚拟环境(mkvirtualenv 虚拟环境名字)mkvirtualenv demo02 2.安装djan...
    ZJXianG阅读 417评论 0 0
  • 连接是互联网带给这个世界最大的礼物,也是互联网最本质的体现。互联网公司基于连接,创造了巨大的商业价值。百度做了人与...
    黄土地的日志阅读 581评论 0 1

友情链接更多精彩内容