Python Django:ForeignKey需要指定一个默认值,什么';那是什么?

Python Django:ForeignKey需要指定一个默认值,什么';那是什么?,python,django,Python,Django,我在django models.py中遇到了这个问题 首先,我导入一个名为“User”的模型 然后我用它作为我的一个模型“问题”的外键 当我尝试迁移它时,它告诉我必须为它指定一个默认值。这里我有两个问题: 1,在我添加这个q_用户之前,我有一个名为“Answer”的外键,它可以很好地工作。为什么它们不同? 2、我应该怎么做?我不知道如何添加指定的默认值。 这让我很烦恼,谢谢你的回复 将外键添加到模型中并使用south迁移模型时,会出现此问题 大多数情况下,您不希望有任何空的ForeignKey。

我在django models.py中遇到了这个问题 首先,我导入一个名为“User”的模型 然后我用它作为我的一个模型“问题”的外键

当我尝试迁移它时,它告诉我必须为它指定一个默认值。这里我有两个问题: 1,在我添加这个q_用户之前,我有一个名为“Answer”的外键,它可以很好地工作。为什么它们不同? 2、我应该怎么做?我不知道如何添加指定的默认值。
这让我很烦恼,谢谢你的回复

将外键添加到模型中并使用south迁移模型时,会出现此问题

大多数情况下,您不希望有任何空的ForeignKey。 就个人而言,如果需要添加这样的外键,我会将其分配给默认的
用户
(主要是
根用户
超级用户)

  • 添加ForeignKey字段,正如您所做的那样,并执行
    /manage.py schemamigrate app
    。South提供了在命令行上指定默认值的选项。在这种情况下,您的默认值是
    User.objects.get(username=“root”)

  • 否则,如果您可以使用空外键,那么下面的定义应该可以使用

    class Question(models.Model):
        q_user = models.ForeignKey(User, null=True, blank=True, default=None)
    

  • 您是否正在使用South更新您的数据库模式?是的,在使用它之前和使用它之后,我都感到非常累。在这种情况下,itSouth为您提供了不指定默认值的选项;它只是想给你一个选项来处理现有的问题行。它给了我两个选择:1,退出,自己添加它。2,现在输入默认指定的值来添加它。我开始了另一个新项目,旧的项目太混乱了。谢谢,我会对它进行测试,看起来很棒
    class Question(models.Model):
        q_user = models.ForeignKey(User, null=True, blank=True, default=None)