#python-3.x #django
Вопрос:
У меня есть форма модели, которую я визуализирую на интерфейсе. Одно из полей является выпадающим списком select2, и пользователь выбирает опцию и добавляет соответствующие сведения в другое поле, например
class MyForm(forms.ModelForm): name = models.ModelChoiceField(queryset=Test.objects.all(),required=False) data = models.CharField(required = False) .....
Теперь URL-адрес, ответственный за обработку СООБЩЕНИЯ, выглядит следующим образом
/example/lt;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()
#сохранение формы модели()
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)
Является ли это чистым подходом? Я хочу сделать это более чистым способом без какого-либо взлома