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

ric*_*ick 37 python django

我需要使用类似get_or_create()的东西,但问题是我有很多字段而且我不想设置默认值(无论如何都没有意义),如果我没有设置默认值,它会返回一个错误,因为它显然可以立即保存对象.

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

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

谢谢.

Noa*_*ing 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))
Run Code Online (Sandbox Code Playgroud)

这几乎是什么get_or_create,没有提交.