2011-12-02 184 views
3

如果我做Django的模型對象初始化

obj = Object() 
obj.att1 = 'test' 
obj.att2 = 'test' 
obj.save() 

obj.id - >工作正常

但如果我這樣做

obj=Object(att1='test',att2='test').save() 

做obj.id - > OBJ似乎在這個階段是Nonetype

這是這種情況?

回答

7

我不知道你使用的是精確的框架,但我將採取猜測,這個問題:

Object(att1='test',att2='test').save()

save()功能似乎並沒有返回Object實例它返回None。所以你通常會:

obj=Object(att1='test',att2='test') 
obj.save() 

然後檢查obj.id

+0

謝謝dclements。你的方法工作正常。順便說一句,我在Django框架中使用python語言。 – user1076881

+7

創建,保存並返回對象的Django單線程是Object.objects.create(att1 ='test',att2 ='test')'。 –

+0

這是完美的答案。因爲你在做什麼只是兩件不同的事情。在第一種情況下,創建對象和obj是OBJECT。第二種情況 - obj是FUNCTION的結果。 –