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

4、Django Admin对自定义的计算字段进行排序

通常,Django会为模型属性字段,自动添加排序功能。当你添加计算字段时,Django不知道如何执行order_by,因此它不会在该字段上添加排序功能。

如果要在计算字段上添加排序,则必须告诉Django需要排序的内容。你可以通过在在计算字段方法中设置admin_order_field属性来执行此操作 。

以OriginAdmin为例,添加以下代码

hero_count.admin_order_field = '_hero_count'
villain_count.admin_order_field = '_villain_count'

完整代码如下:

@admin.register(Origin)
class OriginAdmin(admin.ModelAdmin):list_display = ("name", "hero_count", "villain_count")def get_queryset(self, request):queryset = super().get_queryset(request)queryset = queryset.annotate(_hero_count=Count("hero", distinct=True),_villain_count=Count("villain", distinct=True),)return querysetdef hero_count(self, obj):return obj._hero_countdef villain_count(self, obj):return obj._villain_counthero_count.admin_order_field = '_hero_count'villain_count.admin_order_field = '_villain_count'

显示效果:

后,点击抬头标签,显示字段排序

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MacOS上升级Ruby版本
  • 儿童护眼大路灯怎么选择?5款儿童护眼落地灯分享
  • Maven介绍
  • 正则表达式优化建议
  • 项目经理职责
  • Eureka和Nacos有哪些区别?(面试版)
  • 《OpenCV计算机视觉》—— 图像形态学(腐蚀、膨胀等)
  • SprinBoot+Vue健康管管理微信小程序的设计与实现
  • 探秘DevSecOps黄金管道,安全与效率的完美融合
  • 深度学习系列(1) TensorFlow---Tensorflow学习路线
  • [240903] Qwen2-VL: 更清晰地看世界 | Elasticsearch 再次拥抱开源!
  • 气动切断阀工作原理
  • Qt 配置整个程序的信号-槽连接器
  • Fabric.js Canvas:核心配置与选项解析
  • uniapp钱包支付、与设置密码页面
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【翻译】babel对TC39装饰器草案的实现
  • Android组件 - 收藏集 - 掘金
  • Apache的基本使用
  • Asm.js的简单介绍
  • avalon2.2的VM生成过程
  • CSS中外联样式表代表的含义
  • JavaScript 基础知识 - 入门篇(一)
  • Linux CTF 逆向入门
  • PHP变量
  • Python3爬取英雄联盟英雄皮肤大图
  • Python中eval与exec的使用及区别
  • SpingCloudBus整合RabbitMQ
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Swoft 源码剖析 - 代码自动更新机制
  • Vim Clutch | 面向脚踏板编程……
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 区块链共识机制优缺点对比都是什么
  • 容器服务kubernetes弹性伸缩高级用法
  • 什么软件可以剪辑音乐?
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一份游戏开发学习路线
  • 源码安装memcached和php memcache扩展
  • 整理一些计算机基础知识!
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # wps必须要登录激活才能使用吗?
  • #13 yum、编译安装与sed命令的使用
  • #Linux(Source Insight安装及工程建立)
  • $nextTick的使用场景介绍
  • (2)(2.10) LTM telemetry
  • (2)nginx 安装、启停
  • (21)起落架/可伸缩相机支架
  • (C语言)逆序输出字符串
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (八)Flask之app.route装饰器函数的参数