2013-06-12 76 views
-1

我想通過兩個字段的總和來訂購queryset。
從本質上講,我想改變這樣的模式的默認排序順序:(不工作)django自定義`默認`訂單

class Meta: 
    ordering = ('-my_property_but_not_field', 'my_another_field') 

my_property_but_not_field將總結模型的兩個領域。

我見過它使用的解決方案:

extraDjango order_by sum of fields
annotateOrder a QuerySet by aggregate field value
managerCustom ordering in Django

隨着extraannotate,我將不得不改變每這就需要新的代碼排序順序。

manager,我沒有這樣的問題。
但我不知道如何模仿order_by_1,order_by_2。

+0

您的代碼與您的描述不符。這並不是a)按這些字段的總和排序,或者b)甚至工作,因爲您不能在訂單調用中使用非字段。 –

+0

@Daniel:是的,這是一個問題,我不能在'排序'中使用非字段,但是如何使用其他方法實現相同的結果?我編輯了一下這個問題來澄清。 – eugene

回答

0

如果它適合您的用例,我會簡單地將總和作爲新的字段添加並在模型的save()上進行更新並擺脫屬性。

+0

啊這是非常可行的..愚蠢的我..雖然我認爲原來的問題可以等待另一個答案 – eugene