我想通过两个字段的总和来订购queryset。
从本质上讲,我想改变这样的模式的默认排序顺序:(不工作)django自定义`默认`订单
class Meta:
ordering = ('-my_property_but_not_field', 'my_another_field')
my_property_but_not_field
将总结模型的两个领域。
我见过它使用的解决方案:
extra
:Django order_by sum of fields
annotate
:Order a QuerySet by aggregate field value
manager
:Custom ordering in Django
随着extra
和annotate
,我将不得不改变每这就需要新的代码排序顺序。
与manager
,我没有这样的问题。
但我不知道如何模仿order_by_1,order_by_2。
您的代码与您的描述不符。这并不是a)按这些字段的总和排序,或者b)甚至工作,因为您不能在订单调用中使用非字段。 –
@Daniel:是的,这是一个问题,我不能在'排序'中使用非字段,但是如何使用其他方法实现相同的结果?我编辑了一下这个问题来澄清。 – eugene