get_or_create()是否必须立即保存? (Django的)

我需要使用像get_or_create(),但问题是,我有很多字段,我不想设置默认值(这是没有意义的),如果我不设置默认值,它返回一个错误,因为它显然保存了对象。

我可以将字段设置为null = True,但我不想要空字段。

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

谢谢。

你可以做:

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所做的,没有提交。