2011-12-02 205 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的结果。 –