django - 在 Django 中分组和排序

标签 django django-models django-views django-queryset

我想对模型 QFData 执行group byorder_by 我正在尝试以下查询,但它不起作用。

查询 1:

data = QFData.objects.filter(Branch_Code__in=branchcode, FldNo__gte=201, FldNo__lte=216) \
             .values('FldNo').aggregate(amt=Sum('Amount')) \
             .order_by('FldNo')

但是,如果我想按 amt 订购,那么它可能会起作用。 查询 2:

data = QFData.objects.filter(Branch_Code__in=branchcode, FldNo__gte=201, FldNo__lte=216) \
             .values('FldNo').aggregate(amt=Sum('Amount')) \
             .order_by(amt)

请帮助解决这个问题。我想查询没有。 1 待工作

最佳答案

aggregate(...) 方法根据文档返回一个字典而不是一个查询集: https://docs.djangoproject.com/en/1.8/ref/models/querysets/#django.db.models.query.QuerySet.aggregate

所以显而易见的解决方法是将 order_by 调用移到 aggregate 调用之前:

data = QFData.objects \
           .filter(Branch_Code__in=branchcode, FldNo__gte=201, FldNo__lte=216) \
           .values('FldNo') \
           .order_by('FldNo') \
           .aggregate(amt=Sum('Amount'))

关于django - 在 Django 中分组和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31723009/

相关文章:

python - 将 'through' 用于 ManyToMany 字段时如何向南迁移?

python - 如何使用 Django 查询列中第一次出现的外键?

列 "owner_id"中/new null 值处的 Django IntegrityError 违反了非空约束

django - 如何正确扩展 django 用户模型

python - 删除时信用卡验证表单出错

python - Django 页面加载速度基于变量本地查看代码减慢

django - 需要澄清有关最大 URL Conf 的 Django 文档

python - 如何将参数传递给 Django 表单?

python - Django django.test 客户端post请求

python - 外键 Django 模型