今天在使用Django创建模型类的时候,出现了如下问题
一、
hbook = models.ForeignKey('BookInfo') #关系属性,建立一类和多类之间的关系
TypeError: __init__() missing 1 required positional argument: 'on_delete'
在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:
TypeError: __init__() missing 1 required positional argument: 'on_delete'
hbook=models.ForeignKey('BookInfo',on_delete=models.CASCADE,)
即在外键值的后面加上 on_delete=models.CASCADE
二、
You are trying to add a non-nullable field 'hbook' to heroinfo without a default; we can't do that (the database needs something to populate existing rows).
提示我ForeignKey必须有一个default值。但是django里面没有要求ForeignKey必须有一个默认值。
原来旧的数据库文件和现在执行的操作有冲突。
把migrations文件夹内除了__init__.py以外的文件删除,重新执行makemigrations就可以了。
完成!