与get_or_create
类似,我希望能够在Django中update_or_create
。
到目前为止,我使用了类似于@Daniel Roseman does it here的方法。但是,我想更简洁地将其作为一种模型方法。
This snippet已经很老了,我想知道在更新版本的Django中是否有更好的方法可以做到这一点。
答案 0 :(得分:13)
参见QuerySet.update_or_create(Django 1.7dev中的新内容)
答案 1 :(得分:1)
有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'