Reputation: 830
Is there any possibility to create custom action in admin page for django UserModel? I want automatize adding user to group (like adding him to staff, set some extra values, etc.), and of course create actions that take these changes back.
Thanks for your help.
Upvotes: 9
Views: 5188
Reputation: 4667
Working example without losing all default inline actions etc.
Here we will add action which activates selected users.
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)
Upvotes: 4
Reputation: 29390
Import User
in your admin.py unregister it, create new ModelAdmin
for it (or subclass the default one) and go wild.
It would look something like this I guess:
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)
Upvotes: 16