我想通过两个字段的总和来命令queryset .
基本上,我想更改这样的模型的默认排序顺序:(这不起作用)
class Meta:
ordering = ('-my_property_but_not_field', 'my_another_field')
my_property_but_not_field
将总结模型的两个字段 .
我见过使用的解决方案:
extra
:Django order_by sum of fieldsannotate
:Order a QuerySet by aggregate field valuemanager
:Custom ordering in Django
使用 extra
和 annotate
,我将不得不更改每个需要新排序顺序的代码 .
有 manager
,我没有这个问题 .
但我不知道如何模仿order_by_1,order_by_2 .
1 回答
如果它适合您的用例,我只需将总和添加为新字段并在模型的
save()
上更新它并删除该属性 .