Есть форма, поля необязательные, при получении на сервере я проверяю существует ли с таким 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()
Метод мне кажется немного костыльным, тем более проблема возникает когда передается файл и его нужно обновить, можно ли как-нибудь реализовать это средствами джанго?