IntegrityError:“city_id”列中的空值违反非空约束

时间:2013-05-17 07:25:16

标签: python django models

我有两个模特:

class City(models.Model):
    name = models.CharField(max_length=50)
    country = models.OneToOneField(Country)

    def __unicode__(self):
        return self.name 


class UserProfile(models.Model):
    user = models.OneToOneField(User)
    city = models.OneToOneField(City)

当我syncdb并创建管理员用户时:

IntegrityError: null value in column "city_id" violates not-null constraint

我如何修复此错误?

1 个答案:

答案 0 :(得分:11)

city = models.OneToOneField(City)

您确定每个城市只需要一位用户吗?我认为你需要

city = models.ForeignKey(City, null=True, blank=True)

null, blank因为sycndb会创建个人资料,如果没有传递city则会失败。

或者,您可以将default=default_city_id传递给city ForeignKey