Действие администратора Django для сторонней модели

Как я могу добавить действия в интерфейс администратора стороннего приложения?

Пример: я хочу иметь настраиваемое действие для модели django.contrib.admin.Group,

Под "действием" я подразумеваю пакетное действие представления администратора в виде модели.

Связанные документы: https://docs.djangoproject.com/en/1.7/ref/contrib/admin/actions/

1 ответ

Решение

Отмените регистрацию администратора модели для Group модель, а затем зарегистрировать его с вашим собственным ModelAdmin:

from django.contrib.auth.admin import GroupAdmin
from django.contrib.auth.models import Group    

class MyGroupAdmin(GroupAdmin):
    actions = [...]

admin.site.unregister(Group)
admin.site.register(Group, MyGroupAdmin)

ОБНОВЛЕНИЕ: если вы хотите добавить действия к ModelAdmin из нескольких приложений вы должны получить прямой доступ к реестру недокументированного администратора:

def some_action(modeladmin, request, queryset):
    pass

admin.site._registry[Group].actions.append(some_action)
Другие вопросы по тегам