2010-09-06 128 views
6

有没有可能在管理页面为django UserModel创建自定义操作?我希望自动添加用户到组中(比如将他添加到工作人员,设置一些额外的值等),并且创建采取这些更改的操作。将自定义操作添加到UserModel的管理页面

感谢您的帮助。

回答

12

导入User在你的admin.py中取消注册,为它创建新的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.

+0

+1。清洁。这是我会做的。 – 2010-09-06 16:03:56

+0

谢谢!它完全适合我! – radious 2010-09-14 14:14:01

0

工作实例,而不会丢失所有默认的内联行动等
在这里,我们将增加激活所选用户的操作。

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) 
相关问题