Skip to content
Display Django admin custom actions in changelist, changeview or per row in changelist.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
admin_actions
.gitignore
LICENSE
MANIFEST.in
README.md
screenshot.png
setup.py

README.md

Screenshot

django-admin-actions

django-admin-actions provides simple way how to define custom actions for Django admin changelist, changeview and per row in changelist.

Getting started

  1. Installation
pip install django-admin-actions
pip install git+https://git@github.com/lukasvinclav/django-admin-actions.git
  1. Add admin_admin_actions into INSTALLED_APPS in your settings file before django.contrib.admin.

Sample admin configuration

from django.contrib import admin
from django.shortcuts import redirect
from django.urls import reverse_lazy
from django.utils.translations import ugettext_lazy as _

from admin_actions.admin import ActionsModelAdmin

from .models import ExampleModel


@admin.register(ExampleModel)
class CustomAdmin(ActionsModelAdmin):
    actions_list = ('custom_list_action', )
    actions_row = ('custom_row_action', )
    actions_detail = ('custom_detail_action', )

    def custom_list_action(self, request):
        # custom logic here
        return redirect(reverse_lazy('admin:APP_MODEL_changelist'))
    custom_list_action.short_description = _('Custom name')
    custom_list_action.url_path = 'clean-url-path-1'

    def custom_row_action(self, request, pk):
        # custom logic here
        return redirect(reverse_lazy('admin:APP_MODEL_changelist'))
    custom_row_action.short_description = _('Row custom name')
    custom_row_action.url_path = 'clean-url-path-2'

    def custom_detail_action(self, request, pk):
        # custom logic here
        return redirect(reverse_lazy('admin:APP_MODEL_changelist'))
    custom_detail_action.short_description = _('Detail custom name')
    custom_detail_action.url_path = 'clean-url-path-3'
You can’t perform that action at this time.