我需要使用 get_or_create() 之类的东西,但问题是我有很多字段,我不想设置默认值(无论如何这都没有意义),如果我不设置默认值,它会返回一个错误,因为它显然会立即保存对象。
我可以将字段设置为 null=True,但我不想要空字段。
是否有任何其他方法或任何额外参数可以发送到 get_or_create() 以便它实例化一个对象但在我调用 save() 之前不会保存它?
谢谢。
我需要使用 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
,没有提交。