第三方模型的 Django 管理操作

Posted

技术标签:

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

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

示例:我想为模型 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)

【讨论】:

两个app要扩展同一个action list怎么办?

以上是关于第三方模型的 Django 管理操作的主要内容,如果未能解决你的问题,请参考以下文章

Django框架目录

Django第三课 基于Django超市订单管理系统开发

Django第三课 基于Django超市订单管理系统开发

django配置模型增删改查

Django 框架入门

无法在 Django 1.7 中创建 South 数据库模型