Как обновить только одно поле в экземпляре, используя ModelForm, если в запросе POST в качестве параметра указано только это поле? ModelField пытается переопределить поля, которые не были переданы в запросе POST, и None приводит к потере данных.
У меня есть модель с +25 полями, скажем
class C(models.Model):
a = models.CharField(max_length=128)
b = models.CharField(max_length=128)
...
x = models.IntegerField()
и у меня есть настольное приложение, которое выполняет POST-запросы для редактирования экземпляра C с помощью открытого метода api в views.py
В методе API я использую ModelForm для проверки полей следующим образом:
form = CModelForm(request.POST, instance=c_instance)
if form.is_valid():
form.save()
При выполнении save () django либо жалуется на то, что какое-то другое поле не может быть пустым, либо (если все поля являются необязательными) заменяет их на None.
Кто-нибудь знает, как им управлять? Я бы делал все проверки вручную и обновлял вручную, но в модели так странно длинный список полей ...