django-object-actions
A Django app for adding object tools for models in the admin
What it is and what it does
Django Object Actions extends Django's admin interface to let you define custom action buttons that operate on individual model instances, not just querysets. Instead of writing custom admin views or monkey-patching the change form, you decorate methods with @action and register them in change_actions or changelist_actions attributes, much like Django's built-in admin actions but tailored to single objects.
The package handles rendering buttons on the detail and list pages, routing requests to your action methods, and optionally rendering confirmation forms or intermediate pages. It supports both GET and POST methods, custom labels and tooltips, conditional action visibility, and can redirect to external URLs or return custom responses. No runtime dependencies means minimal installation friction.
Use it for:
- Add a 'Publish' button to article admin that publishes a single article without leaving the detail page.
- Create a 'Send Email' action on user objects that triggers a confirmation form before sending.
- Build a 'Duplicate' action that clones an object and redirects to the new instance's edit page.
- Add bulk 'Mark as Reviewed' actions to a changelist that operate on querysets like standard admin actions.
- Implement conditional actions that only appear for superusers or when an object meets certain state criteria.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds custom action buttons to Django admin object detail and changelist pages, letting you define per-object tools alongside standard admin actions.
Yes. Low install friction, no dependencies, active maintenance, permissive license, and a clear use case for Django projects that need per-object admin tools. The API mirrors Django's native admin actions, making it easy to adopt. Install if you want custom buttons on admin detail pages without building custom views.
Install
django-object-actions on PyPI
pip
pip install django-object-actionsuv
uv add django-object-actionspoetry
poetry add django-object-actionsInstalling django-object-actions
Before you install
Low friction install with no runtime dependencies. Active maintenance with recent releases; last commit 2026-05-29 and 812 repository stars indicate ongoing support.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; attribution required.
Quickstart
pip install django-object-actions
# In admin.py
from django_object_actions import DjangoObjectActions, action
class ArticleAdmin(DjangoObjectActions, admin.ModelAdmin):
@action(label="Publish")
def publish_this(self, request, obj):
obj.status = 'published'
obj.save()
change_actions = ("publish_this",)
Requires Django to be installed; add django_object_actions to INSTALLED_APPS or manually copy its template file.
Verify before relying
- Whether the package works with all currently-supported Django versions (fact sheet lists Python support but not Django version constraints)
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 78 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,581,165/month — #3,740 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_object_actions-5.1.2-py3-none-any.whl
Keywords: django, admin
Tags
More Dynamic Content packages
MarkupSafe provides a text object that escapes…
permissive · top 100 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
soupsieveSoupsieve is a CSS selector library designed to…
permissive · top 100 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
FlaskFlask is a lightweight WSGI web application…
permissive · top 1,000 on PyPI
MakoMako compiles Python-embedded templates into…
permissive · top 1,000 on PyPI
django-admin-csvexportAdds a Django admin action that exports…
permissive · top 15,000 on PyPI
django-admin-extra-buttonsAdds custom buttons, links, and views to Django…
permissive · top 15,000 on PyPI
django-guardiandjango-guardian adds per-object permission…
permissive · top 5,000 on PyPI
django-admin-list-filter-dropdownRenders Django admin list filters as dropdown…
permissive · top 5,000 on PyPI
django-more-admin-filtersProvides a collection of Django admin filter…
permissive · top 15,000 on PyPI
django-admin-autocomplete-filterAdds autocomplete-based filtering to Django…
copyleft · top 15,000 on PyPI
django-loginasAdds a "Log in as user" button to the Django…
permissive · top 5,000 on PyPI
django-admin-rangefilterAdds date range, datetime range, and numeric…
permissive · top 5,000 on PyPI
django-adminplusAdds custom admin views to Django's admin…
permissive · top 5,000 on PyPI
django-nonrelated-inlinesProvides Django admin inline classes that let…
permissive · top 15,000 on PyPI