skillfed

django-admin-extra-buttons

Django mixin to easily add buttons to any ModelAdmin

django-admin-extra-buttons v2.2.1 155.7K downloads/30d#10,801 on PyPI172
Permissive license Active released

What it is and what it does

django-admin-extra-buttons is a Django mixin that lets you add custom buttons, links, and views to Django admin pages using simple Python decorators. Instead of modifying templates or writing boilerplate admin code, you decorate methods in your ModelAdmin class with @button(), @link(), @view(), or @choice() to expose them as clickable actions in the admin interface. It handles routing, rendering, and state management automatically.

The package is actively maintained and supports modern Django versions (4.2, 5.2, 6.0) and Python 3.12+. It has a single runtime dependency on django-stubs and installs with low friction. Common use cases include adding custom admin workflows, linking to external resources, building multi-step wizards, and creating menu-like button groups without touching Django's admin templates.

Use it for:

  • Add a custom 'Export to PDF' button to a ModelAdmin that triggers a background task.
  • Create a menu-like button in admin that groups related actions (e.g., 'Send Email', 'Archive', 'Duplicate').
  • Link to external tools or dashboards directly from the admin change list or detail page.
  • Build a multi-step wizard for complex admin operations (e.g., bulk import with validation).
  • Add API-only views accessible from admin without rendering a button in the UI.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Adds custom buttons, links, and views to Django admin pages through simple decorators, enabling wizards, actions, and external resource links without modifying core admin templates.

Yes. Low install friction, active maintenance, permissive license, and no known vulnerabilities make this a safe choice. It solves a genuine Django admin pain point—adding custom actions without template hacking—and the decorator-based API is straightforward. Suitable for any Django project needing richer admin customization.

Install

django-admin-extra-buttons on PyPI

pip

pip install django-admin-extra-buttons

uv

uv add django-admin-extra-buttons

poetry

poetry add django-admin-extra-buttons

Installing django-admin-extra-buttons

Before you install

Low friction install with a single runtime dependency (django-stubs). Active maintenance with recent releases; last commit 2026-05-19. Supports Django 4.2, 5.2, and 6.0 with Python 3.12+.

License in practice

Permissive license (BSD) with no notable restrictions on use, modification, or distribution.

Quickstart

pip install django-admin-extra-buttons

from django_admin_extra_buttons.decorators import button
from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    @button()
    def my_action(self, request):
        return HttpResponse('Action executed')

Requires Django 4.2+ and Python 3.12+; django-stubs must be installed as a runtime dependency.

Verify before relying

  • Whether django-stubs is used at runtime or only for type checking during development.
  • Specific Django versions tested beyond 4.2, 5.2, and 6.0 mentioned in classifiers.
  • Performance impact when adding many buttons to a single ModelAdmin.

Package facts

License not declared (permissive)
Python support supports the current Python release (>=3.12)
Install friction low — pure-Python wheel
Runtime dependencies 1 — django-stubs
Maintenance actively maintained — 87 days since the last release
Last repo commit
First released
Downloads 155,721/month — #10,801 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_admin_extra_buttons-2.2.1-py3-none-any.whl

Environment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.2Framework :: Django :: 6.0Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: Libraries :: Application FrameworksTopic :: Software Development :: Libraries :: Python Modules

Tags

django admin custom buttonsdjango admin extra actionsdjango modeladmin decoratorsdjango admin wizarddjango admin linkscustomize django admin interfacedjango admin view decorator
django-admindecorators

More Python Modules packages

idna

Converts domain names between Unicode and…

permissive · top 100 on PyPI

setuptools

Setuptools is a Python build backend and…

permissive · top 100 on PyPI

PyYAML

PyYAML parses and emits YAML 1.1 data format,…

permissive · top 100 on PyPI

pydantic

Pydantic validates Python data structures…

permissive · top 100 on PyPI

annotated-types

Provides reusable metadata objects for use with…

permissive · top 100 on PyPI

typing-inspection

Provides runtime tools to inspect and…

permissive · top 100 on PyPI

django-object-actions

Adds custom action buttons to Django admin…

permissive · top 5,000 on PyPI

django-adminplus

Adds custom admin views to Django's admin…

permissive · top 5,000 on PyPI

django-admin-sortable2

Adds drag-and-drop reordering of model…

permissive · top 5,000 on PyPI

django-annoying

Provides a collection of Django utility…

permissive · top 15,000 on PyPI

wagtail-modeladmin

Adds Django model administration interfaces to…

permissive · top 15,000 on PyPI

django-admin-data-views

Adds custom data views to the Django admin…

permissive · top 15,000 on PyPI

django-decorator-include

Applies decorators to Django URL patterns…

permissive · top 15,000 on PyPI

django-admin-inline-paginator-plus

Adds pagination to Django admin inline forms,…

permissive · top 15,000 on PyPI

django-admin-inline-paginator

Adds pagination controls to Django admin inline…

permissive · top 5,000 on PyPI

django-loginas

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

permissive · top 5,000 on PyPI