当前位置: 首页 > 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 queryset
    def hero_count(self, obj):
        return obj._hero_count
    def villain_count(self, obj):
        return obj._villain_count
    hero_count.admin_order_field = '_hero_count'
    villain_count.admin_order_field = '_villain_count'

显示效果:

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

http://www.dtcms.com/a/12193.html

相关文章:

  • 论tomcat线程池和spring封装的线程池
  • 第二章 数据访问:JPA
  • 探索Ansible自动化运维:提高效率的关键工具
  • zabbix和prometheus介绍;云原生
  • 数据结构之 “单链表“
  • 2d像素游戏基本架构
  • C++ 容器迭代器失效
  • 前端算法面试题1--栈、队列、链表、字典与哈希表
  • 操作系统-第二章【上】
  • 【软考中级攻略站】-软件设计师(1)-数值及其转换和数据表示
  • 基于大数据分析景区消费行为影响因素研究【消费等级预测、携程,去哪网数据抓取】
  • JVM GC 调优
  • DP和HDMI的产生根源
  • docker实战基础二(Docker基础命令)
  • vue3 动态组件component不生效问题
  • 深度学习(一)-感知机+神经网络+激活函数
  • Ollydbg提示:xxxxxx可能不是一个 32 位 PE 文件,无论如何都尝试载入吗?
  • 十一. 常用类
  • 【C++】C++ 多态的底层实现
  • pyautogui对鼠标的几种操作,附代码示例
  • 永劫无间:欺骗振刀+快速取消蓝色霸体+升龙+追击+下劈
  • mysql集群技术
  • 20-22 - 打造专业的编译环境
  • 人该怎样活着呢?48
  • Vue3 官方推荐状态管理库Pinia
  • 全球1km分辨率人口分布栅格数据
  • 2024国赛数学建模评价类算法解析,2024国赛数学建模C题思路模型代码解析
  • 【PGCCC】揭秘PostgreSQL中行存储索引的奥秘:从原理到实战案例
  • ping不通本地虚拟机的静态ip的解决方案
  • 前端知识HTMLCSS