django - 用 django 通用形式编辑多对多关系的另一面

标签 django forms django-forms many-to-many m2m

我有两个模型:

 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 form linking 2 models by many to many field ,我创建了一个带有保存功能的 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'
       )

但这会引入除保存到此对象的多对多选择之外的所有信息。

我想我需要做类似的事情:Editing both sides of M2M in Admin Page ,但我还没弄明白。

如何使用通用 update_object 编辑多对多链接的另一端?

最佳答案

我在这里找到了答案:

http://www.djangosnippets.org/snippets/1295/

关于django - 用 django 通用形式编辑多对多关系的另一面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549651/

相关文章:

python - 如何排除表单子(monad)类中 ModelForm 中声明的字段?

Python:转换字典中的元组列表

javascript - Symfony 3 多层嵌套表单

ruby-on-rails - 带 Elasticsearch 的Select_tag

python - 图表未显示在我的 html-Django 中(在 html 中嵌入动态图表)

python - 如何在 Django 的表单中嵌套内联表单集?

用于 IntegerField 的 Django max_length

django - 如何在 Django 模板中制作 "nested"翻译字符串?

python - Django 设置默认表单值

javascript - ng 模式仅允许输入文本框中包含 '-'