Django Admin批量编辑多对多关系

Posted

技术标签:

【中文标题】Django Admin批量编辑多对多关系【英文标题】:Django Admin Bulk Edit on Many to Many Relationship 【发布时间】:2013-06-17 21:25:09 【问题描述】:

在我的 Django 应用程序中,我有两个模型:出版物和标签。这两个模型具有多对多关系:

class Tag(models.Model):
    title = models.CharField(max_length=50,)

class Publication(models.Model):
    title = models.CharField(max_length=200,)
    tags = models.ManyToManyField(Tag, blank=True, related_name="publications", null=True)

在管理站点上,我希望能够对发布对象进行批量编辑。具体来说,我希望能够更新一组出版物的标签。

例如,如果我从发布页面中选择“发布 1、发布 2 和发布 3”并创建一个显示“change_tags”的操作并点击执行,我会看到数据库中的标签列表和我可以从该列表中选择并将所选标签添加到所有三个出版物中。

我不知道是否有办法做到这一点。我查看了有关添加操作的 Django 文档:https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#ref-contrib-admin-actions,但给出的示例并未解决我正在尝试做的事情的复杂性。

【问题讨论】:

【参考方案1】:

在对 Django 文档进行进一步调查后,我发现我可以添加一个操作,将管理员用户引导到一个中间页面,我可以创建该中间页面来进行任何必要的编辑。 https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#actions-that-provide-intermediate-pages

【讨论】:

您能否举例说明您为实现这一目标所做的工作?

以上是关于Django Admin批量编辑多对多关系的主要内容,如果未能解决你的问题,请参考以下文章

在 Django Admin 中过滤多对多框

用于递归多对多的 Django Admin 内联

django 1.4 多对多批量添加

django学习-34.多对多表关系对应的完整业务操作

如何在 django admin 中自定义多对多内联模型

Python入门自学进阶-Web框架——6Django的ORM-多对多admin应用