Изменение значения поля в форме Django перед отправкой на повторный рендеринг
Основной текст заметки
После валидации формы, при обнаружении ошибок, иногда возникает необходимость поменять значение поля (например дозаполнить пустое поле). Для этого нужно поменять значение в поле data формы. Но просто так это не сделать, потому что для него стоит флаг _mutable. Флаг приходится предварительно сбросить, а потом восстановить
class MyView(FormView):
....
def form_invalid(self, form):
_mutable = form.data._mutable
form.data._mutable = True
form.data["info"] = 'новое значение поля'
form.data._mutable = _mutable
return super().form_invalid(form)
Заметка написана: 04.06.2020
Теги заметки: Django