欢迎访问宙启技术站
智能推送

Django.contrib.auth.admin中的UserAdmin():用户搜索与筛选功能

发布时间:2023-12-25 04:20:12

在Django中,django.contrib.auth.admin模块提供了一个UserAdmin类,它是AdminSite类的一个子类,用于管理用户模型(User模型)。UserAdmin类提供了许多功能和选项,可以帮助我们更轻松地管理用户,包括用户的搜索和筛选。

要使用UserAdmin类的搜索和筛选功能,我们需要在admin.py文件中注册用户模型,并将UserAdmin类与之关联。下面是一个使用例子:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

# 创建一个自定义的UserAdmin类,继承自UserAdmin
class MyUserAdmin(UserAdmin):
    search_fields = ('username', 'email')  # 设置搜索字段为用户名和邮箱
    list_filter = ('is_staff', 'is_superuser')  # 设置筛选字段为是否为员工和是否为超级用户

# 注册用户模型,并关联自定义的UserAdmin类
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

在上面的例子中,我们创建了一个名为MyUserAdmin的自定义UserAdmin类,继承自UserAdmin。在MyUserAdmin类中,我们通过设置search_fields属性和list_filter属性来定义搜索和筛选字段。

search_fields属性定义了我们可以在管理界面上搜索用户的字段,这里我们设置为用户名和邮箱。list_filter属性定义了我们可以筛选用户的字段,这里我们设置为是否为员工和是否为超级用户。

然后,我们解注册了默认的UserAdmin类(admin.site.unregister(User)),并注册了关联了我们自定义的UserAdmin类的用户模型(admin.site.register(User, MyUserAdmin))。

现在我们可以进入用户管理页面,使用搜索框来搜索用户,也可以使用筛选器来筛选用户。例如,在搜索框中输入关键字可以快速找到用户名或邮箱中包含该关键字的用户,而在筛选器中选择“是否为员工”为“是”可以显示所有员工用户。

这就是django.contrib.auth.admin中UserAdmin()的用户搜索和筛选功能的使用例子。使用这些功能,我们可以更方便地管理和查找用户。当我们的用户数量增多时,这些功能将变得非常有用。