【发布时间】:2018-06-18 19:18:58
【问题描述】:
是否可以使用 for group by 子句重命名嵌套字段?
这个查询:
paymentitem.objects.filter(payment=p).values('item__vat_tax').annotate(base=models.Sum('price')).order_by('item__vat_tax')
返回预期数据:
<QuerySet [{'base': Decimal('41.322'), 'item__vat_tax': 15}, {'base': Dec
imal('483.470'), 'item__vat_tax': 21}]>
我想将字段“item__vat_tax”重命名为“vat”。这个查询:
paymentitem.objects.filter(payment=p).extra(select={'vat': 'item__vat_tax'}).values('item__vat_tax').annotate(base=models.Sum('price')).order_by('vat')
返回相同的结果,但出乎意料地由 vat 排序。
如果我更改 value 语句中的字段名称,则会引发错误。
【问题讨论】:
-
这个答案可能对stackoverflow.com/a/32580991/548562有帮助
-
是的,它适用于 F 表达式。非常感谢。
标签: django django-orm django-annotate