C сайта прилетает расписание с полями (time_start, time_stop, tz). После прохождения валидации нужно перевести time_start и time_stop из tz в utc и сохранить результат.
schedule_items = inlineformset_factory(Schedule, ScheduleItem, etra=1, max_num=50, formset=ScheduleItemFormSet)
при request.method == 'POST' выполняю следующее:
form_scedule_items = schedule_items(request.POST, instance=schedule)
if form_schedule_items is_valid():
for x in range(form_schedule_items.total_form_count()):
form_schedule_items[x] = тут происходит конвертация
logging.info(form_schedule_items[x])
form_schedule_items.save()
Все равно сохраняется то что изначально прилетело в POST!!!
Переопределял и clean и save результат тот же... Получилось победить только если, до того как передать форме POST, сделать его копию request.POST.copy(), изменить ее, и только после передать в form_scedule_items = schedule_items(COPY_OF_POST, instance=schedule).
Есть ли более изящное решение?