在尝试运行manage.py makemigrations
时,我收到以下错误:
You are trying to add a non-nullable field 'menu_category' to fooditem without
a default; we can't do that (the database needs something to populate existing
rows.
我的代码如下:
class FoodItem(models.model):
restaurant = models.ForeignKey('Restaurant', on_delete=models.CASCADE)
menu_category = models.ForeignKey('MenuCategory', on_delete=models.CASCADE)
...
没有意义的部分是当我删除menu_category行时没有发生错误,尽管餐馆外键也没有默认值。另外,如果我必须为外键指定默认值,我甚至会指定什么值?
答案 0 :(得分:1)
您只添加了一个名为menu_category
的新列,对吧? <{1}}字段不会出错,因为它已经存在。
Django为您提供此错误,因为您要添加的字段对于已经存在而没有默认值的表不能为空。您需要允许空值(因此创建的列值在已存在的行中可以为空)或指定用于填充列的默认值。
Django应该问你是否想提供一次性的#34;默认值仅适用于migation。如果你有一些&#34;默认&#34; restaurant
对象可以具有的菜单类别,然后在django提示您输入值时指定其ID。
示例prmopt:
FoodItem