Задать вопрос
ksenofobius
@ksenofobius
Люблю долбить по клавишам

Как в django обновить только изменившиеся поля записи?

Есть форма, поля необязательные, при получении на сервере я проверяю существует ли с таким id запись или нет, если существует то передаю initial а текущую форму, затем я проверяю change_data и по ним дополняю существующую модель (если поля != '' или None).
try:
                current_user = Passport.objects.get(id=current_id)
                f = PassportForm(request.POST, request.FILES, initial=model_to_dict(current_user))

                if f.has_changed():

                    for i in f.changed_data:
                        if (f.data[i] != '') and (f.data[i] != None):
                            current_user.i = f.data[i]
                            current_user.__setattr__(i, f.data[i])

                    current_user.save()

Метод мне кажется немного костыльным, тем более проблема возникает когда передается файл и его нужно обновить, можно ли как-нибудь реализовать это средствами джанго?
  • Вопрос задан
  • 1891 просмотр
Подписаться 1 Оценить 3 комментария
Решения вопроса 1
Gasoid
@Gasoid
save(update_fields=['field'])
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы