2009-07-08 47 views
37

我需要使用像get_or_create()这样的东西,但问题是我有很多字段,我不想设置默认值(无论如何都没有意义),如果我不默认情况下它会返回一个错误,因为它显然会立即保存对象。get_or_create()必须立即保存吗? (Django)

我可以设置字段为空=真,但我不想空字段。

是否有任何其他方法或任何额外的参数可以发送到get_or_create(),以便它实例化一个对象,但不保存它,直到我对它调用save()?

谢谢。

回答

37

你可以这样做:

try: 
    obj = Model.objects.get(**kwargs) 
except Model.DoesNotExist: 
    obj = Model(**dict((k,v) for (k,v) in kwargs.items() if '__' not in k)) 

这差不多就是get_or_create呢,SANS提交。

相关问题