2009-11-12 13 views
1

我有一個相當複雜的QuerySet,用戶有很多註釋值來獲取整個記錄集的一些計數和總和。結果行進行分組,併爲每個組顯示此列的總和或該列的計數等Django註釋以顯示聚合總數並對QuerySet進行預先分片計數

問題是,當我切片查詢設置爲了分頁數據,查詢是評估現在計數和總和與切片查詢集相關,而不是完整的一個。

是否有辦法避免這種情況,即,保持資金/計數整個行顯示退換,但仍返回切片查詢集?

我試圖看看是否可以導致查詢設置爲執行第一次,並且只有在它執行後纔會執行切片,但是找不到如何執行該操作,所以我不知道該操作是否可行(是不是? )

非常感謝, 哈雷爾

回答

2

你應該能夠得到查詢集做評價:

qs = list(qs) 

在這一點上它不再是一個QuerySet,只是一個普通的Python列表,其中可以像往常一樣切片。

與做這個分頁的問題,當然是,不管是什麼瀏覽網頁,你正在返回一整套從數據庫中的記錄。如果你的數據集很大,這可能是一個真正的問題。鑑於你的要求,這聽起來可能是不可避免的;你的查詢要麼處理所有的記錄,要麼只處理其中的一部分。沒有看到更多細節,很難確切知道。

0

我結束了在運行一個單獨的查詢,讓我的資金,並與有關實際的頁面一起返回其結果。我正在處理的數據量實際上並不允許我像這樣處理整個查詢集。 謝謝Carl!