自定义Django admin(后台管理模块)的Filter过滤器
模型类为Hero,需求为在Admin中实现Hero类以gender字段进行过滤。
admin.py中的代码如下:
from django.contrib import admin from .models import Hero @admin.register(Hero) #注册模型类Hero class HeroAdmin(admin.ModelAdmin): '''管理Hero表在admin模块中的设置''' list_display = ('id', 'name, 'age', 'gender') search_fields = ('id', 'name') class GenderFilter(admin.SimpleListFilter): title = '英雄性别' #过滤标题显示为"以 英雄性别" parameter_name = 'gender' #过滤器使用的过滤字段 def lookups(self, request, model_admin): '''针对字段值设置过滤器的显示效果''' return ( (True, 女), (False, 男), ) def queryset(self, request, queryset): '''定义过滤器的过滤动作''' if self.value() == True: return self.model().objects.filter(gender=True).all() elif self.value() == False: return self.model().objects.filter(gender=False).all() list_filter = (GenderFilter)
实现的效果图如下所示:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 从零开始开发一个 MCP Server!
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档