Files
server/users/admin.py
T
ngfchl 777ca50328 update. 完成前端页面展示、列表和详情页
update. 调整融合主菜单与板块
update. 分离新闻模块
2026-04-01 14:17:03 +08:00

57 lines
1.8 KiB
Python

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from import_export.admin import ImportExportModelAdmin
from .models import User
from .models import Department
from .models import Role, Permission
@admin.register(User)
class UserAdmin(BaseUserAdmin, ImportExportModelAdmin):
list_display = ('username', 'cname', 'dept', 'is_active', 'is_staff')
list_filter = ('is_active', 'is_staff', 'dept')
search_fields = ('username', 'cname')
fieldsets = (
(None, {'fields': ('username', 'password')}),
('个人信息', {'fields': ('cname', 'dept')}),
('权限', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
('重要日期', {'fields': ('last_login', 'date_joined')}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'cname', 'password1', 'password2', 'dept'),
}),
)
ordering = ('username',)
filter_horizontal = ('groups', 'user_permissions', 'roles') # 如果 roles 是 ManyToMany
@admin.register(Department)
class DepartmentAdmin(ImportExportModelAdmin):
list_display = ('name', 'parent', 'order')
list_filter = ('parent',)
search_fields = ('name',)
ordering = ('order', 'name')
@admin.register(Role)
class RoleAdmin(ImportExportModelAdmin):
list_display = ('name', 'permission_count')
search_fields = ('name',)
filter_horizontal = ('permissions',)
def permission_count(self, obj):
return obj.permissions.count()
permission_count.short_description = "权限数量"
@admin.register(Permission)
class PermissionAdmin(ImportExportModelAdmin):
list_display = ('resource', 'action', 'desc')
list_filter = ('resource', 'action')
search_fields = ('resource', 'desc')
ordering = ('resource', 'action')