Django 按计数排序

2024-01-11

我有这些模型:

class Project(models.Model):
    title=models.CharField(max_length=80)
    date_created=models.DateTimeField(auto_now_add=True)
    category = models.ForeignKey(Category)

class Category(models.Model):
    name = models.CharField(max_length=80)

这在视图中:

cat_list = Category.objects.order_by(order_by)
for c in cat_list:
    count = Project.objects.filter(category__id=c.id).count()
    setattr(c, 'count', count)

我现在如何按 COUNT 属性订购此产品?


执行此操作的正确方法是注解 https://docs.djangoproject.com/en/dev/topics/db/aggregation/。这会将数据库查询量减少到 1,并且排序将变得简单order_by功能:

from django.db.models import Count

cat_list = Category.objects.annotate(count=Count('project_set__id')).order_by('count')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 按计数排序 的相关文章

随机推荐

  • Magento - 根据环境加载local.xml

    我想要 3 个app etc local xml文件 将它们称为 local xml staging xml 和 live xml 我想根据我在 vhosts 或 htaccess 中设置的环境变量加载它们 这样我就可以拥有单独的数据库等
  • 为什么 SqlParameter 名称/值构造函数将 0 视为 null?

    我在一段代码中观察到一个奇怪的问题 其中即席 SQL 查询没有产生预期的输出 即使其参数与数据源中的记录匹配 我决定在立即窗口中输入以下测试表达式 new SqlParameter Test 0 Value 这给出了结果null 这让我摸不
  • 如何在WPF中的特定位置添加菜单项?

    我想添加一个像这样的菜单项 AddChild new MenuItem Header Test 然而 问题是菜单项出现在最后 逻辑上 现在我正在寻找一种将其添加到特定位置的方法 A B C 我想将它添加到 A 和 B 之间 XAML 如下所
  • 在 R 中封装 sqldf

    是否可以在sqldf中的字符串内添加注释 就像是 sqldf select ProductID count distinct SalePrice as num regPz from MYDF where SalesFlag 0 coded
  • AndroidStudio - Gradle 中的模块依赖关系

    我在 Android Studio 中使用模块依赖项编译 Android 应用程序时遇到了一些问题 所以 我希望我的应用程序使用 slidingmenu 库 链接here https github com jfeinstein10 Slid
  • 确定 Delphi 中的 WPD 设备类型

    我正在尝试确定我的 WPD 设备在 Delphi 中的类型 在我的应用程序中 我需要知道该设备是手机还是相机或者什么 根据这篇 MSDN 文章 https msdn microsoft com en us library windows h
  • Nginx 无法通过 Ansible 重新启动

    我在剧本中有一个任务 尝试像往常一样通过处理程序重新启动 nginx name run migrations command bash lc some command notify restart nginx 然而 剧本因这个错误而中断 N
  • Feedback.js 服务器 API

    反馈 js http experiments hertzen com jsfeedback 是一个很棒的 jquery 插件 允许您创建反馈表单 其中包括在客户端浏览器上创建的屏幕截图以及表单 如何将捕获的图像和用户的评论发送到服务器端 a
  • 如果未设置变量,则使用函数对其进行初始化 - PHP

    执行脚本时 有时会设置变量 有时不会 有时情况并非如此 我会收到一个通知 表明该变量未定义 为了清除通知 我简单地添加了以下代码 if isset var var NULL 它可以根据需要工作 因为它测试变量是否尚未设置 这样我们就不会设置
  • 有没有办法知道 iOS 中的应用程序何时被删除?

    我的问题是这样的 我在 iOS 应用程序上安排了一些 UILocalNotifications 问题是 如果我删除应用程序而不删除与通知关联的对象 并因此从 ScheduledNotifications 数组中删除通知 通知仍然会触发 尽管
  • 在 C# 中表示什么[重复]

    这个问题在这里已经有答案了 我是 C 新手 直接深入修改我收到的项目的一些代码 但是 我不断看到这样的代码 class SampleCollection
  • Python C API 如何将结构数组从 C 传递到 Python

    对于我正在创建的 python 模块 我想向 python 用户传递一个如下所示的结构数组 struct tcpstat inet prefix local inet prefix remote int lport int rport in
  • CSS规则中选择器的优先级

    让我先展示一下示例代码 tbl tr hover background color FFA270 important tbl td nth child odd background color F0FFE2 cell height 5ex
  • 选项菜单操作栏

    谁能明白为什么我的帮助图标没有显示在操作栏中 我已将代码的相关部分粘贴在下面 谢谢 菜单topline xml
  • 使用 jQuery 交换 div 内容

    这是我的 HTML div class large img src images photos Interior jpg alt The interior div class caption The interior div div div
  • 如何将 POINT mysql 类型与 mysqli - php 一起使用[重复]

    这个问题在这里已经有答案了 基于这张桌子 http php net manual en mysqli stmt bind param php来自 PHP net Type specification chars Character Desc
  • 使用 EF core 2.1 调用 DbFunction

    我尝试调用存储在数据库中的标量函数 这是我的代码 public class PronosticDbContext DbContext public PronosticDbContext DbContextOptions
  • PhoneGap:Camera API getPicture 对话框放大

    在Android 4 4中 使用Camera API getPicture API将导致对话框放大 代码如下 var sourceType pictureSource SAVEDPHOTOALBUM navigator camera get
  • PHPUnit TDD,PHP 致命错误:调用未定义的方法

    我正在使用 PHPUnit 启动一个 TDD 项目 但有些事情确实让我烦恼 似乎只要所有的类和方法都没有实现 所有的测试就无法运行 如果类或方法尚未实现 我该如何使测试继续事件 Thanks 编辑 TDD 的重点不就是你的测试套件在编写测试
  • Django 按计数排序

    我有这些模型 class Project models Model title models CharField max length 80 date created models DateTimeField auto now add Tr