Чистый способ работать с Django UpdateView, не позволяя ему переопределяться и делать append к существующим данным?

У меня есть модель формы, которую я отображаю на фронтенде. Одно из полей представляет собой выпадающий список select2, пользователь выбирает вариант и добавляет соответствующие детали в другое поле, например

class MyForm(forms.ModelForm):
  name = models.ModelChoiceField(queryset=Test.objects.all(),required=False)
  data = models.CharField(required = False)
  .....

Теперь url, отвечающий за обработку POST, выглядит следующим образом

/example/<str:name/

Вот моя проблема, у меня уже есть существующее значение данных в БД для определенного name. Я хочу, чтобы когда пользователь выбирает имя во фронтенде и добавляет некоторое значение в данные, эти данные добавлялись к существующему значению в БД для этого имени. Я наследую от UpdateView и поэтому, когда я делаю что-то вроде этого, оно просто переопределяет существующие данные.

def form_valid(self,form):
    obj = form.save(commit=False)
    #here is where I would like to do something with the existing data for that instance
    obj.save()

Один из подходов, который был у меня в голове, на самом деле делает что-то вроде этого в форме save()

#modelform save()

 def save(self,commit=True):
     #do a fetch from the db about the existing data
     obj = MyModel.objects.get(id=instance.id)
     self.data = obj.append_data(obj.data,self.data) #can be a model method
     return super().save(commit)

Является ли это чистым подходом? Я хочу сделать это более чистым способом без всяких хаков

Вернуться на верх