Django管理员为第三方模型采取行动

时间:2015-03-24 13:30:00

标签: django django-admin extend

如何向第三方应用的管理界面添加操作?

示例:我想为模型django.contrib.admin.Group设置自定义操作。

使用“action”我的意思是模型的管理列表视图的批处理操作。

相关文档:https://docs.djangoproject.com/en/1.7/ref/contrib/admin/actions/

1 个答案:

答案 0 :(得分:3)

取消注册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)