У меня есть две модели:
class Actor(models.Model):
name = models.CharField(max_length=30, unique = True)
event = models.ManyToManyField(Event, blank=True, null=True)
class Event(models.Model):
name = models.CharField(max_length=30, unique = True)
long_description = models.TextField(blank=True, null=True)
В предыдущем вопросе: Форма Django, связывающая 2 модели многими со многими полями , я создал EventForm с функцией сохранения:
class EventForm(forms.ModelForm):
class Meta:
model = Event
def save(self, commit=True):
instance = forms.ModelForm.save(self)
instance.actors_set.clear()
for actor in self.cleaned_data['actors']:
instance.actors_set.add(actors)
return instance
Это позволило мне добавить ссылки m2m с другой стороны определенного подключения m2m.
Теперь я хочу отредактировать запись. Я использовал универсальную функцию:
def generic_edit(request, modelname, object_id):
modelname = modelname.lower()
form_class = form_dict[modelname]
return update_object(request,
form_class = form_class,
object_id = object_id,
template_name = 'createdit.html'
)
но при этом извлекается вся информация, кроме множества "многие ко многим", сохраненного в этом объекте.
Я думаю, мне нужно сделать что-то похожее на это: Редактировать обе стороны M2M на странице администратора , но я не понял этого.
Как использовать универсальный объект update_object для редактирования другой стороны ссылки «многие ко многим»?