IntegrityError: значение null в столбце "city id" нарушает ограничение not-null

Я две модели:

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 ответов


city = models.OneToOneField(City)

вы уверены, что хотите только одного пользователя на город? Я думаю, вам нужно

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

null, blank, потому что sycndb создаст профиль и потерпит неудачу, если нет city передается.

альтернативно, вы можете пройти default=default_city_id до city ForeignKey