2013-05-17 7 views
7

I due modelli:IntegrityError: valore nullo nella colonna "city_id" viola vincolo 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) 

quando ho syncdb e creo utente admin:

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

come posso risolvere questo errore?

risposta

8
city = models.OneToOneField(City) 

Sei sicuro di voler solo un utente per città? Penso che avete bisogno

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

null, blank perché il sycndb creerà un profilo e non funziona se non city viene passato.

In alternativa, è possibile passare alla default=default_city_idcityForeignKey