例如,我们有这样的代码:
class Foo(models.Model):
a = models.CharField(max_length=10)
class Bar(models.Model):
b = models.CharField(max_length=10)
a = models.ForeignKey(Foo)
Run Code Online (Sandbox Code Playgroud)
当我运行 makemigrations 时,我发现我需要设置 a(Bar) 的默认值 谁能解释一下,我为什么要这样做?
谢谢!
您的数据库中似乎已经有了一些数据(或者您在添加ForeignKey字段之前进行了迁移)。为了使迁移工作,您需要“告诉”Django对于已经存在的行,表的a列中应该包含哪些数据Bar。
要么删除整个数据库/早期的迁移,要么提供您选择的默认值:
a = models.ForeignKey(Foo, default=None) # or any other default value
Run Code Online (Sandbox Code Playgroud)