通常,最好對給定對象執行單個查詢與許多查詢。假設我有一堆'兒子'物體,每個物體都有'父親'。我得到所有的'兒子'對象:在App Engine中訪問相關對象密鑰而不提取對象
sons = Son.all()
然後,我想讓那羣兒子的所有父親。我做的:
father_keys = {}
for son in sons:
father_keys.setdefault(son.father.key(), None)
然後,我可以這樣做:
fathers = Father.get(father_keys.keys())
現在,這個假設son.father.key()實際上並沒有去獲取的對象。我錯了嗎?我有一堆代碼假定object.related_object.key()實際上並不從數據存儲中獲取related_object。
我正在做這個對嗎?
踢踢屁股的答案。我的應用程序只有10倍的速度和更便宜:D – 2010-01-16 05:17:15
@Sudhir,很高興幫助,感謝讓我知道它做到了! - ) – 2010-01-16 05:29:31
說到哪些對象在從商店檢索時被緩存?因此,如果我在處理程序中執行了Father.get(all_keys),如果我只是將他們的父親打印出來,運行時是否會嘗試再次將它們放入模板中? – 2010-01-16 05:31:32