2013-05-17 21 views
7

ja dwa model:IntegrityError: null wartość w kolumnie "city_id" jest niezgodny z nie-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) 

kiedy syncdb i utworzyć użytkownika admin:

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

Jak można naprawić ten błąd?

Odpowiedz

8
city = models.OneToOneField(City) 

Czy na pewno chcesz mieć tylko jednego użytkownika na miasto? Myślę, że trzeba

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

null, blank ponieważ sycndb stworzy profil i zakończy się niepowodzeniem, jeśli nie city podjęcia.

Alternatywnie, można przekazać default=default_city_id do cityForeignKey