2012-02-15 76 views
1

我試圖訂購一個查詢集,然後過濾有序集。這應該工作嗎?還是需要order_by是鏈中的最後一個操作?Django查詢集操作順序

例如

qs.order_by(books_count).filter(author="bob") 

是此相同?

qs.filter(author="bob").order_by(books_count) 

我沒有得到兩者相同的結果。

+3

你會得到什麼結果?我不確定,但過濾後的順序可能意味着默認排序重新應用 – 2012-02-15 20:32:03

+0

你可以通過在你的第一個查詢集上應用qs.ordered來查看是否順序是通行的(https://docs.djangoproject.com/ en/dev/ref/models/querysets /#django.db.models.query.QuerySet.ordered) – Jingo 2012-02-15 20:32:11

+3

我只是在前後用'order_by'做了一個測試,並且都產生了相同的SQL和相同的結果 - 任何問題。 'books_count'是一個實際變量還是缺少引號? – 2012-02-15 21:03:18

回答

0

注意 - 根據以上註釋,您應用過濾器(filter,order_by)的順序無關緊要。