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
, потому что "Этот шаблон становится довольно громоздким по мере увеличения количества полей в модели"