我为什么要设置外键的默认值,django

时间:2015-12-20 13:24:08

标签: python django

例如,我们有这段代码:

class Foo(models.Model):
    a = models.CharField(max_length=10)


class Bar(models.Model):
    b = models.CharField(max_length=10)
    a = models.ForeignKey(Foo)

当我运行makemigrations时,我发现我需要设置默认值(Bar) 任何人都可以解释我,我为什么要这样做?

谢谢!

1 个答案:

答案 0 :(得分:4)

您的数据库中似乎已经有了一些数据(或者您在添加ForeignKey字段之前已经进行了迁移)。为了使迁移工作,您需要“告诉”Django对于已存在的行,a表的Bar列中应该有哪些数据。

删除整个数据库/早期迁移,或提供您选择的默认值:

a = models.ForeignKey(Foo, default=None) # or any other default value