Метод модели Django - create_or_update

Подобно get_or_create, я бы хотел иметь возможность update_or_create в Джанго.

До сих пор я использовал подход, подобный тому, как @Daniel Roseman делает это здесь. Однако я хотел бы сделать это более кратко в качестве модельного метода.

Этот фрагмент довольно старый, и мне было интересно, есть ли лучший способ сделать это в более поздней версии Django.

Ответ 2

Существует 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'