from django.contrib import admin from django.contrib.auth.admin import UserAdmin as DefaultUserAdmin from .models import User @admin.register(User) class UserAdmin(DefaultUserAdmin): list_display = ("username", "email", "role", "source_manager", "is_active", "is_staff", "last_login") list_filter = ("role", "is_active", "is_staff", "is_superuser") search_fields = ("username", "email") filter_horizontal = ("groups", "user_permissions", "managed_websites", "authorized_websites") def get_fieldsets(self, request, obj=None): base = list(super().get_fieldsets(request, obj)) base.append(("角色权限", {"fields": ("role", "source_manager")})) if obj: if obj.role == "manager": base.append(("管理权限", {"fields": ("managed_websites",)})) elif obj.role == "user": base.append(("访问权限", {"fields": ("authorized_websites",)})) return base