2010-03-29 58 views
0

我希望有人可以幫我解決一個關於鏈接Django查詢集的快速問題。我注意到速度減慢,因爲我正在評估數據庫中的許多數據點以創建數據趨勢。我想知道是否有一種方法可以在本地評估鏈式過濾器而不是擊中數據庫。這裏是(原油)例如:本地評估Django鏈式查詢集

pastries = Bakery.objects.filter(productType='pastry') # <--- will obviously always hit DB, when evaluated 
cannoli = pastries.filter(specificType='cannoli') # <--- can this be evaluated locally instead of hitting the DB when evaluated, as long as pastries was evaluated? 

我已經檢查了文檔,我沒有看到任何指定這一點,所以我想這是不可能的,但我想檢查的「智囊團」第一;-) 。

順便說一句 - 我知道我可以通過實現一些方法來循環這些數據點並評估標準,但是有太多的數據點,我的截止日期不允許我手動實現。

在此先感謝。

回答

1

QuerySet方法始終生成返回所需表達式的SQL。這就是爲什麼你不能切片後調用各種方法; SQL不支持該語法。 ORM只是組裝所述SQL。如果你想要更好的處理,那麼你將需要自己在Python代碼中執行它。

+0

謝謝,不是我所希望的,而是我期望的那種:-( – jnadro52 2010-03-30 04:14:03