jac300
jac300

Reputation: 5222

Django Admin Bulk Edit on Many to Many Relationship

In my Django app, I have two models: Publications and Tags. These two models have a many to many relationship:

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)

On the admin site, I'd like to be able to make bulk edits to the publication objects. Specifically, I'd like to be able to update the tags for a group of publications.

For example, if I choose from the publications page, "publication 1, publication 2, and publication 3," and create an action that says "change_tags" and I hit go, I see the list of tags in the database and I can select from that list and add the chosen tags to all three publications.

I don't know if there is a way to do this. I checked the Django docs on adding actions: https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#ref-contrib-admin-actions but the example given doesn't address the complexity of what I am trying to do.

Upvotes: 3

Views: 1376

Answers (1)

jac300
jac300

Reputation: 5222

After some further investigation in the Django docs, I discovered that I can add an action that directs the admin user to an intermediate page that I can create to make whatever edits are necessary. https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#actions-that-provide-intermediate-pages

Upvotes: 1

Related Questions