skillfed

django-object-actions

A Django app for adding object tools for models in the admin

django-object-actions v5.1.2 1.6M downloads/30d#3,740 on PyPI812
Permissive license Apache-2.0 Active released

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-actions

uv

uv add django-object-actions

poetry

poetry add django-object-actions

Installing 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

Development Status :: 5 - Production/StableFramework :: DjangoIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9

Tags

django admin custom actionsdjango admin object toolsdjango admin per-object buttonsdjango model admin actionsdjango admin detail page actions
django-adminadmin-ui

More Dynamic Content packages

MarkupSafe

MarkupSafe provides a text object that escapes…

permissive · top 100 on PyPI

Jinja2

Jinja2 is a templating engine that renders…

permissive · top 100 on PyPI

soupsieve

Soupsieve is a CSS selector library designed to…

permissive · top 100 on PyPI

Werkzeug

Werkzeug is a WSGI utility library providing…

permissive · top 1,000 on PyPI

Flask

Flask is a lightweight WSGI web application…

permissive · top 1,000 on PyPI

Mako

Mako compiles Python-embedded templates into…

permissive · top 1,000 on PyPI

django-admin-csvexport

Adds a Django admin action that exports…

permissive · top 15,000 on PyPI

django-admin-extra-buttons

Adds custom buttons, links, and views to Django…

permissive · top 15,000 on PyPI

django-guardian

django-guardian adds per-object permission…

permissive · top 5,000 on PyPI

django-admin-list-filter-dropdown

Renders Django admin list filters as dropdown…

permissive · top 5,000 on PyPI

django-more-admin-filters

Provides a collection of Django admin filter…

permissive · top 15,000 on PyPI

django-admin-autocomplete-filter

Adds autocomplete-based filtering to Django…

copyleft · top 15,000 on PyPI

django-loginas

Adds a "Log in as user" button to the Django…

permissive · top 5,000 on PyPI

django-admin-rangefilter

Adds date range, datetime range, and numeric…

permissive · top 5,000 on PyPI

django-adminplus

Adds custom admin views to Django's admin…

permissive · top 5,000 on PyPI

django-nonrelated-inlines

Provides Django admin inline classes that let…

permissive · top 15,000 on PyPI