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


问题内容

我两个模型:

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)

当我同步数据库并创建管理员用户时:

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

如何解决此错误?


问题答案:
city = models.OneToOneField(City)

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

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

null, blank因为sycndb会创建一个配置文件,如果不city通过则会失败。

或者,您可以default=default_city_id转到city ForeignKey