Django update_or_create с несколькими значениями по умолчанию / полями

Я хотел бы использовать update_or_create для обновления нескольких полей, но не могу найти правильный синтаксис. Следующее дает ошибку:

def form_valid(self, form):
    form.instance.user = self.request.user
    form.instance, created = MyModel.objects.update_or_create(
        user=self.request.user, defaults=(
            {'field1': form.instance.field1},
            {'field2': form.instance.field2},
            {'field3': form.instance.field3},
        ))
    return super().form_valid(form)

Ошибка, которую я получаю 'tuple' object has no attribute 'items'. Я также попробовал это со списком, аналогичная ошибка. Все работает нормально, когда у меня только один словарь, например defaults={'field1': form.instance.field1}. Я предполагаю, что это должно работать с несколькими словарями, так как в docs говорится, что это помогает избежать использования try и except, потому что "Этот шаблон становится довольно громоздким по мере увеличения количества полей в модели"

Вернуться на верх