Django REST queryset order_by在降序ord中不起作用

2024-04-27 00:21:51 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我正在学习Django和Django Rest框架,并且我正在研究一个API项目。这个项目是关于从数据库返回关于文本记录的简单统计信息。我想从数据库中列出十个最常见的单词。

这是^{cd1>}文件:

from django.db import models

class Word(models.Model):
    word = models.CharField(max_length = 100)
    word_count = models.IntegerField()

    class Meta:
        db_table = 'djangorest_word'
        managed = False

这是^{cd2>}文件:

^{pr2}$

升序工作正常:

^{pr3}$

但是,每当我使用^{cd3>}或^{cd4>}时,没有十个单词,但只有两个:

^{pr4}$

我不明白为什么^{{cd5>}以升序正常工作,但在降序中却不能工作。我有什么遗漏吗?是否还有其他方法来实现接收前十个值?


Tags: 文件项目django文本框架restapi数据库
1条回答
网友
1楼 · 发布于 2024-04-27 00:21:51

当涉及到注释时,QuerySet函数的顺序很重要。特别是,您希望在注释之后对进行排序。This answer有一个很好的例子。在

所以在你的情况下:

Word.objects.values('word') \
    .annotate(word_count=Sum('word_count')) \
    .order_by('-word_count')[:10]

相关问题 更多 >