是否有可能在django UserModel的管理页面中创建自定义操作?我想自动将用户添加到组(例如将他添加到员工,设置一些额外的值等),当然还要创建可以恢复这些更改的操作。
感谢您的帮助。
答案 0 :(得分:13)
在您的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)
答案 1 :(得分:1)
工作示例,不会丢失所有默认内联操作等。
在这里,我们将添加激活所选用户的操作。
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)