【发布时间】:2011-03-10 19:14:38
【问题描述】:
是否可以使用 django ORM 通过两个不同字段的总和对查询集进行排序?
例如,我有一个看起来像这样的模型:
class Component(models.Model):
material_cost = CostField()
labor_cost = CostField()
我想做这样的事情:
component = Component.objects.order_by(F('material_cost') + F('labor_cost'))[0]
但不幸的是,F 对象似乎不适用于“order_by”。 django 可以做到这一点吗?
【问题讨论】:
-
不是我想要的。该方法对所有相关对象的某个字段求和。 (在那个特定的例子中,它对所有相关投票的值求和。)我需要对原始对象的两个字段求和。因此,我不能使用 Sum 聚合器,除非有一种我不知道的使用方法。