Мое приложение django подключается к базе данных сервера sql.В моем шаблоне у меня есть редактируемый набор данных / форма.Всякий раз, когда пользователь редактирует поле и нажимает клавишу ввода, я хочу сохранить только отредактированное поле.Насколько я знаю, AJAX - единственный подход для этого, особенно если вы хотите, чтобы значение отредактированного поля было единственным, переданным на сервер.Давайте пока отложим этот случай и примем передачу всех данных набора форм сразу.Кроме того, набор форм основан на представлении SQL Server, которое включает в себя вычисленные значения.Следовательно, выполнение formset.save () вызовет ошибку.Вместо этого я должен использовать базовую таблицу, чтобы сохранить измененное значение.Что было бы лучше, чтобы идентифицировать измененное поле и сохранить только это?
Скажем, базовая таблица - costperdiem, которая соответствует модели в моем приложении django, а 'cost' - это имя редактируемого поля I.хочу сохранить, тогда мой подход заключается в следующем:
- проверить, является ли корректным набор форм
- перебрать формы набора форм, используя change_data для поиска измененного поля
- используя экземпляр модели для фильтрации по измененной записи
- , передайте измененное значение в модель
- , сохраните модель
, которая выглядит следующим образом в коде:
formset = FormSet_CostsPerDiem(request.POST)
if formset.is_valid():
for f in formset.forms:
if 'costs' in f.changed_data:
val2save=f.cleaned_data['costs']
id=f.cleaned_data['id_costsperdiem']
rec2save=costsperdiem.objects.filter(pk=id)
rec2save.costs=val2save
rec2save.save()
Как лучше всего делать что-то подобное?