11、Django Admin启用对计算字段的过滤

server/2024/9/29 15:42:22/

重新定义admin.py中的Hero管理模型如下:

python">@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin):list_display = ("name", "is_immortal", "category", "origin", "is_very_benevolent")list_filter = ("is_immortal", "category", "origin",)def is_very_benevolent(self, obj):return obj.benevolence_factor > 75

它具有一个计算字段is_very_benevolent,Admin后台显示如下:

我们已经在来自模型属性字段上添加了过滤,但是还想在计算出的字段上添加过滤。为此,我们可以通过继承SimpleListFilter类实现:

python">class IsVeryBenevolentFilter(admin.SimpleListFilter):title = 'is_very_benevolent'parameter_name = 'is_very_benevolent'def lookups(self, request, model_admin):return (('Yes', 'Yes'),('No', 'No'),)def queryset(self, request, queryset):value = self.value()if value == 'Yes':return queryset.filter(benevolence_factor__gt=75)elif value == 'No':return queryset.exclude(benevolence_factor__gt=75)return queryset

然后将更改list_filter为list_filter = ("is_immortal", "category", "origin", IsVeryBenevolentFilter)

这样,便可以对计算出的字段进行过滤。修改后管理后台显示如下:

如何对计算字段修改成系统自带的布尔类型显示效果,增加is_very_benevolent.boolean = True代码,HeroAdmin管理模型修改如下:

python">@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin):list_display = ("name", "is_immortal", "category", "origin", "is_very_benevolent")list_filter = ("is_immortal", "category", "origin", IsVeryBenevolentFilter)def is_very_benevolent(self, obj):return obj.benevolence_factor > 75is_very_benevolent.boolean = True

显示效果如下:


http://www.ppmy.cn/server/111265.html

相关文章

Hive SQL 练习

1、统计每天首次登录的人数 -- 统计每天首次登录的人数 -- 步骤:先找出第一次登录的时间,再按首次登录时间分组求人数-- 方法1: select first_login_time, count(user_id) as cnt from (select user_id, date_formate(min(login_ts), yyyy-…

macos 自定义用户目录方法, /Users/xxx 用户文件存储路径自定义方法

在macos中,我们的用户数据全部都存储在了 /Users/xxx 文件夹下, 而这个文件夹默认是和我们的macos系统文件存放在了同一个磁盘卷宗(分区)里面的, 这个就给我们在遭遇系统崩溃或者其他情况重装系统时带来了极大的不便, 如果是格式化后全新安装 数据全部丢失,如果是覆盖安装同…

oceanbase OBCE 第四章实验 事务与远程执行

实验环境:企业版V3 1-1-1 前期准备: 新建一个 oracle 租户 1C2GB 新建资源规格: create resource unit u1_ora max_cpu1,min_cpu1,max_memory2G,min_memory2G,max_iops128,max_disk_size10G,max_session_num100; 新建资源池: c…

51单片机-第十节-独立按键及数码管优化

一、优化独立按键: 独立按键的实现中,为了解决抖动问题(在按下和抬起时,按键会在高低电平之间抖动10ms),我们在按下后Delay(20),随后进入循环,直到检测到按键抬起,再Del…

2024年最值得购买的百元蓝牙耳机有哪些?四款热门畅销机型推荐

2024年,面对琳琅满目的蓝牙耳机选择,消费者可能会感到困惑,特别是当预算限制在百元左右时,2024年最值得购买的百元蓝牙耳机有哪些?当然在这个价格区间内,市场上也不乏性能卓越、性价比高的产品,…

网络安全售前入门08安全服务——Web漏洞扫描服务

目录 1.服务概述 2.服务内容 2.1代码层安全 2.2应用层安全 ​​​​​​​3.服务工具 4.​​​​​​​服务输出 1.服务概述 Web漏洞扫描服务主要针对应用系统漏洞进行扫描,主要包括扫描WEB服务器(IIS、Websphere、Weblogic、Apache等)的漏洞;识别数据库类型;扫描第三…

两句话讲清楚离线安装docker镜像

两句话讲清楚离线安装docker镜像 文章目录 两句话讲清楚离线安装docker镜像写在前面解决方案 写在前面 背景:银河麒麟、离线环境,装吧,一装一个不吱声。 准备: 首先,你要有个docker,安装好了才能搞镜像是不…

一文讲清楚,AI、AGI、AIGC与AIGC、NLP、LLM,ChatGPT等概念

本文旨在深入解析人工智能(AI)、通用人工智能(AGI)、人工智能生成内容(AIGC)、自然语言处理(NLP)、大型语言模型(LLM)以及ChatGPT等关键概念,并探…