40

类似于get_or_create,我希望能够update_or_create在 Django 中。

到目前为止,我使用的方法类似于@Daniel Roseman的做法。但是,我想更简洁地将其作为模型方法。

这个片段已经很老了,我想知道在更新版本的 Django 中是否有更好的方法来做到这一点。

4

2 回答 2

63

update_or_create,例如::

obj, created = Person.objects.update_or_create(
    first_name='John', last_name='Lennon',
    defaults={'first_name': 'Bob'},
)
# If person exists with first_name='John' & last_name='Lennon' then update first_name='Bob'
# Else create new person with first_name='Bob' & last_name='Lennon'
于 2019-09-02T06:08:31.463 回答
49

请参阅QuerySet.update_or_create(Django 1.7dev 中的新功能)

于 2013-08-19T15:56:59.350 回答