2010-04-13 48 views
0

我最初的問題在這裏,並與postgres後端相關。 Postgres subquery, ordering by subquerydjango - 由postgres函數設置的訂單查詢

現在我的問題已經轉移到Django ORM層。我基本上想要通過postgres函數('idx',取自上面的計算器工作)來查詢查詢

我已經嘗試使用model.objects.extra(order_by)或只是order_by,但我相信這些需要將order_by參數作爲Django已知的屬性或字段。

我想如何解決這個問題,而不必恢復到通過模型管理器使用完全原始的SQL查詢。

回答

4

您可以使用extra將函數結果添加到查詢中,然後按順序排序。例如:

MyModel.objects.extra(select={'idx': 'idx(foo, bar)'}, order_by=['idx']) 
+0

這是一個很好的答案。我希望我能給你更多的幫助 – akiva 2016-07-31 14:25:25