在Django我不得不模型A和B,B有FK參考A. A2B是一個一對多的Django的查詢加入
在我的控制器代碼中,我選擇的根據某些標準列表並將此列表傳輸到模板以生成html頁面。
該模板用來生成列表:{%爲在list_of_a%}
的問題是,每「一」印我必須打印相關燒烤爲好。使用非Django代碼,它將是簡單的連接。 但是我怎麼能在django中實現這個?
感謝
在Django我不得不模型A和B,B有FK參考A. A2B是一個一對多的Django的查詢加入
在我的控制器代碼中,我選擇的根據某些標準列表並將此列表傳輸到模板以生成html頁面。
該模板用來生成列表:{%爲在list_of_a%}
的問題是,每「一」印我必須打印相關燒烤爲好。使用非Django代碼,它將是簡單的連接。 但是我怎麼能在django中實現這個?
感謝
你的問題是模糊的,但它的精神似乎是要避免以A
小號循環時產生的1個* N查詢。
在Django 1.4中,您可以使用新的prefetch_related
,它仍然會生成一個額外的查詢,但只是一個而不是1 * N。
以前的Django版本沒有任何相似之處,但有一個名爲django-batch-select的應用程序可以用來獲得大致相同的功能。
如果你知道如何使用QuerySet的內在魔法,你可以自己做。例如,參見
https://github.com/benjiec/curious/blob/master/curious/graph.py
查看關於如何使用橫動功能
https://github.com/benjiec/curious/blob/master/tests/curious_tests/test_graph_fk.py
'{%的B在a.b_set.all%}測試用例{{B}} {%endfor%}' – 2012-03-20 15:42:55