2010-09-06 3 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. Clean. Это то, что я сделал бы. –

+0

Спасибо! Это полностью работает для меня! – radious

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) 
Смежные вопросы