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

2 8*_*2 8 9 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)
Run Code Online (Sandbox Code Playgroud)

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

IntegrityError: null value in column "city_id" violates not-null constraint
Run Code Online (Sandbox Code Playgroud)

我怎么能修复这个错误?

tux*_*fly 11

city = models.OneToOneField(City)
Run Code Online (Sandbox Code Playgroud)

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

city = models.ForeignKey(City, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

null, blank因为sycndb它将创建一个配置文件,如果没有city传递将失败.

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