当前位置: 首页 > news >正文

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

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

@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类实现:

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管理模型修改如下:

@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

显示效果如下:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • [ios]准备好app后使用xcode发布ios操作
  • 用SpringBoot API实现识别pdf文件是否含有表格
  • AI建模——AI生成3D内容算法产品介绍与模型免费下载
  • 【人工智能/机器学习/机器人】数学基础-学习笔记
  • Z Product | AI教母李飞飞AI创业,4 个月估值达 10 亿美金,目标是使AI能够像人类一样理解和推理三维物理世界
  • 口语笔记——定语
  • 进程管理中的三态模型
  • 828华为云征文 | Flexus X实例与华为云EulerOS的Tomcat安装指南
  • 智能监测,守护未来:QY-19 GNSS位移监测站
  • 揭秘IP地址与SSL证书:构建数字世界的信任桥梁
  • LabVIEW如何自学成为专业开发者
  • yocto传递宏(bitbake传递宏)
  • 联盟营销案例:策略与成功故事
  • 【Linux】gcc/g++ 、make/Makefile、git、gdb 的使用
  • LiveQing视频点播流媒体RTMP推流服务功能-支持大疆等无人机RTMP推流支持OBS推流一步一步搭建RTMP视频流媒体服务示例
  • 「面试题」如何实现一个圣杯布局?
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • emacs初体验
  • Java 多线程编程之:notify 和 wait 用法
  • node和express搭建代理服务器(源码)
  • React中的“虫洞”——Context
  • Spring Boot MyBatis配置多种数据库
  • Vue 2.3、2.4 知识点小结
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • vue中实现单选
  • 包装类对象
  • 如何编写一个可升级的智能合约
  • 设计模式(12)迭代器模式(讲解+应用)
  • 学习HTTP相关知识笔记
  • 原生js练习题---第五课
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​linux启动进程的方式
  • ​学习一下,什么是预包装食品?​
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • # Redis 入门到精通(七)-- redis 删除策略
  • $nextTick的使用场景介绍
  • (C语言)球球大作战
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Qt) 默认QtWidget应用包含什么?
  • (solr系列:一)使用tomcat部署solr服务
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (差分)胡桃爱原石
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)Neo4j下载安装以及初次使用
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)LINQ之路
  • .form文件_一篇文章学会文件上传