Django Admin Bulk编辑多对多关系

时间:2013-06-20 20:49:55

标签: python django django-models django-admin

在我的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”的动作并且我点击了go,我会在数据库中看到标签列表,我可以从该列表中进行选择,并将所选标签添加到所有三个出版物中。

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

1 个答案:

答案 0 :(得分:1)

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