2010-09-06 9 views
6

Esiste la possibilità di creare azioni personalizzate nella pagina di amministrazione per django UserModel? Voglio automatizzare l'aggiunta di utenti al gruppo (come aggiungerlo allo staff, impostare valori extra, ecc.) E, naturalmente, creare azioni che riprendano questi cambiamenti.Aggiunta di azioni personalizzate alla pagina Admin di UserModel

Grazie per il vostro aiuto.

risposta

12

Importare User nel tuo admin.py annullarlo, creare nuovo ModelAdmin per esso (o sottoclasse quello predefinito) e scatenarsi.

Sarebbe simile a questa immagino:

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. Pulito. Questo è quello che farei. –

+0

Grazie! Funziona completamente per me! – radious

0

esempio di lavoro senza perdere tutte le azioni inline predefinite ecc
Qui l'aggiungeremo azione che attiva gli utenti selezionati.

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) 
Problemi correlati