将自定义操作添加到 UserModel 的管理页面

Posted

技术标签:

【中文标题】将自定义操作添加到 UserModel 的管理页面【英文标题】:Adding custom action to UserModel's Admin page 【发布时间】:2011-04-08 19:31:12 【问题描述】:

是否有可能在 django UserModel 的管理页面中创建自定义操作?我希望自动将用户添加到组(例如将他添加到员工、设置一些额外的值等),当然还需要创建操作来收回这些更改。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

在您的 admin.py 中导入 User 取消注册它,为其创建新的 ModelAdmin(或将默认的子类化)然后疯狂。

我猜它看起来像这样:

from django.contrib.auth.models import User

class UserAdmin(admin.ModelAdmin):
    actions = ['some_action']

    def some_action(self, request, queryset):
        #do something ...
    some_action.short_description = "blabla"

admin.site.unregister(User)
admin.site.register(User, UserAdmin)

Reference for actions.

【讨论】:

另外,我猜你也可以from django.contrib.auth.admin import UserAdmin然后子类UserAdmin而不是ModelAdmin【参考方案2】:

不丢失所有默认内联操作等的工作示例。 在这里,我们将添加激活选定用户的操作。

from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin


def make_active(modeladmin, news, queryset):
    queryset.update(is_active=True)
make_active.short_description = u"Activate selected Users"

class CustomUserAdmin(UserAdmin):
    actions = [make_active]


admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)

【讨论】:

以上是关于将自定义操作添加到 UserModel 的管理页面的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义 javascript 添加到 WordPress 管理员?

将自定义批量操作添加到 Woocommerce 3 中的管理订单列表

将自定义奏鸣曲页面路由添加到导航栏

Rails 路由:将自定义路由添加到标准操作列表

将自定义 css 添加到 wordpress 中的页面模板

将自定义 css 添加到 React-Bootstrap 组件