在Django中按ManyToManyField排序查询集

弗朗兹皇帝

我有一个像这样的模型:

class my_model(models.Model)
    foo = models.ManyToManyField(My_other_model)

我想my_model按foo字段中的对象数量来排序所有对象这个问题中,来自俄罗斯的一个友好的家伙说,您应该使用django-annontation。我尝试了以下方法:

my_model.objects.all().order_by("-foo")

而且效果很好。有什么理由让我对注解走得更远吗?感谢您的帮助并保持健康!

苏芳芳

文档中,您的用例可以只使用.order_by()对于更复杂的查询,您将这样使用.annotate()

below_5 = Count('book', filter=Q(book__rating__lte=5))
pubs = Publisher.objects.annotate(below_5=below_5)

您还可以像这样进行多个注释:

below_5 = Count('book', filter=Q(book__rating__lte=5))
above_5 = Count('book', filter=Q(book__rating__gte=5))
pubs = Publisher.objects.annotate(below_5=below_5).annotate(above_5=above_5)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django按相关模型字段排序查询集

来自分类Dev

通过ManyToManyField = Value订购Django查询集

来自分类Dev

Django:以最少的查询集检索ManyToManyField对象

来自分类Dev

按日期排序查询集

来自分类Dev

按查询顺序对查询集进行排序

来自分类Dev

如何在具有ManyToManyField的Django模型中过滤查询集?

来自分类Dev

Django中不区分大小写的查询集排序

来自分类Dev

为 Django 中的查询集手动排序

来自分类Dev

如何在Django中按属性对查询集进行分组

来自分类Dev

按出现次数排序查询集

来自分类Dev

按最新记录排序查询集列表

来自分类Dev

根据引用对象中来自manytomanyfield的属性获取查询集

来自分类Dev

来自Django中查询集的查询集

来自分类Dev

合并排序的查询集-Django

来自分类Dev

如何对合并的查询集进行排序Django

来自分类Dev

在django中按名称排序

来自分类Dev

如何在Django中从ManyToManyField重新排序对象?

来自分类Dev

jQuery DataTables按行中的集排序

来自分类Dev

如何按相关对象数排序查询集?

来自分类Dev

在单个查询中按分组和排序

来自分类Dev

在子查询中按ID排序

来自分类Dev

使用Cakephp在查询中按StudentId排序

来自分类Dev

如何按 LINQ 查询中的函数排序?

来自分类Dev

在 Elasticsearch 中按查询删除和排序

来自分类Dev

通过模板中的外键访问时如何对Django查询集进行排序

来自分类Dev

根据来自Redis的排序集排序来排序Django查询集

来自分类Dev

按无序集排序

来自分类Dev

按无序集排序

来自分类Dev

Django ManyToManyField运行中