【问题标题】:Django admin action for third party model第三方模型的 Django 管理操作
【发布时间】:2015-05-27 20:13:34
【问题描述】:

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

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

“操作”是指模型的管理列表视图的批处理操作。

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

【问题讨论】:

    标签: django django-admin extend


    【解决方案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)
    

    【讨论】:

    • 两个app要扩展同一个action list怎么办?
    猜你喜欢
    • 2020-03-26
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 2011-02-28
    • 2013-04-26
    • 2021-08-03
    • 1970-01-01
    相关资源
    最近更新 更多