Skip to main content
 首页 » 编程设计

python之Django Admin 批量编辑多对多关系

2025年05月04日39lori

在我的 Django 应用程序中,我有两个模型:Publications 和 Tags。这两个模型具有多对多关系:

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但是给出的例子并没有解决我正在尝试做的事情的复杂性。

请您参考如下方法:

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