2014-07-20 2 views
0

Modèle:AutoField ne fonctionne pas dans Django-nonrel

class MasterDishList(models.Model): 
    dishid = models.AutoField(primary_key=True) 
    dishname = models.CharField(max_length=100) 
    username = models.ForeignKey(User) 
    dishprice = models.IntegerField() 

Et si je tente:

objectoadd = MasterDishList.objects.create(dishname="somename", dishprice=100, username=userobject) 

-je obtenir:

/home/abd/Development/Projects/misc/fadster-backend/djangotoolbox/db/basecompiler.pyc in execute_sql(self, return_id) 
    581     if value is None and not field.null and not field.primary_key: 
    582      raise IntegrityError("You can't set %s (a non-nullable " 
--> 583           "field) to None!" % field.name) 
    584 
    585     # Prepare value for database, note that query.values have 

IntegrityError: You can't set dishid (a non-nullable field) to None! 

Ceci est clairement un droit de bug? Ou est-ce que je manque quelque chose?
Une solution de contournement pour cela que je peux éventuellement utiliser?

+0

Django ajoute automatiquement une clé primaire à chaque modèle. Pourquoi avez-vous besoin de l'ajouter par vous-même? –

Répondre

0

Votre clé principale semble être identique à la valeur par défaut. Il est recommandé de ne pas préciser le champ comme il sera ajouté automatiquement par django:

Automatic primary key fields

Vous pouvez laisser votre modèle comme:

class MasterDishList(models.Model): 
    dishname = models.CharField(max_length=100) 
    username = models.ForeignKey(User) 
    dishprice = models.IntegerField() 
Questions connexes