2014-01-13 44 views
0

新對象當試圖更新現有的Django模型對象(與save()法),行被插入,而不是。Django的插入後save()方法,而不是更新


例如:

>>> import datetime 
>>> from data_lib.models import Meal 
>>> m = Meal(name="My First Meal!", description="this is my first meal's description") 
>>> print m.mealid 
None 
>>> m.save() 
>>> print m.mealid 
None 
>>> m.save() 

是第二save()方法調用之後,一個重複的條目插入我的表。


這裏是模型定義的樣本:

class Meal(models.Model): 
    mealid = models.IntegerField(db_column='MealId', primary_key=True) 
    name = models.CharField(db_column='Name', max_length=45, blank=True) 
    description = models.CharField(db_column='Description', max_length=200, blank=True) 

回答

1

的問題是在模型對象的類定義。

一旦我將primary_key字段設置爲AutoField,問題就消失了。

我的新模型定義如下:


class Meal(models.Model): 
     mealid = models.AutoField(db_column='MealId', primary_key=True) 
     name = models.CharField(db_column='Name', max_length=45, blank=True) 
     description = models.CharField(db_column='Description', max_length=200, blank=True) 

一個近乎完美的自動生成的Django的!

相關問題