2010-09-06 7 views
6

Gibt es eine Möglichkeit, eine benutzerdefinierte Aktion auf der Admin-Seite für django UserModel zu erstellen? Ich möchte den Benutzer automatisch zur Gruppe hinzufügen (z. B. ihn zu den Mitarbeitern hinzufügen, einige zusätzliche Werte festlegen usw.) und natürlich Aktionen erstellen, die diese Änderungen zurücknehmen.Benutzerdefinierte Aktion zur Admin-Seite von UserModel hinzufügen

Danke für Ihre Hilfe.

Antwort

12

Importieren Sie User in Ihrer admin.py Registrierung, erstellen Sie neue ModelAdmin dafür (oder Unterklasse der Standard) und gehen wild.

Es wäre etwa so aussehen Ich denke:

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. Reinigen. Das würde ich tun. –

+0

Danke! Es funktioniert komplett für mich! – radious

0

Arbeitsbeispiel ohne alle inlines Standard zu verlieren Aktionen usw.
Hier werden wir Aktion hinzufügen, die ausgewählte Benutzer aktiviert.

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) 
Verwandte Themen