我正在研究一個有幾個模型的Django應用程序:父母,孩子,學校,手機。每個「父母」(實質上是Django的「用戶」模式)可以有多個孩子,每個孩子可以有一個學校和一個手機。Django從基於URL的模型列表中獲取當前選定的模型
我組織了我的網站,以保持它儘可能模塊化。通過這個,我的意思是導航模板位於一個文件中,一個側邊欄模板(包含很多鏈接)位於另一個文件中,全部由一個layout.html文件組合在一起。
如果父母訪問該網站,它將被重定向到domain.com/dashboard
。在導航欄中,父母可以選擇從下拉菜單中選擇一個孩子。之後,父/用戶將被重定向到domain.com/dashboard/1
,其中「1」是子數據庫表的主鍵。
我的問題:
- 如何獲得所選擇的值的頁面導航後/儀表板/ 1,這樣我就可以改變下拉值當前選擇的孩子?
- 我如何在整個layout.html文件中從本質上獲取有關當前所選小孩的信息?例如,側邊欄鏈接需要採用
domain.com/schools/1
,domain.com/cellphones/1
的形式,其中此「1」始終是「子」表的主鍵。另外,這個「sidebar.html」模板本身也是存在的,並且只包含在layout.html模板中。目前,我正確鏈接到/dashboard/1
,只是因爲我使用用戶的ID遍歷Children數據庫中的所有模型。
我已經設法獲得所有模板文件(包括sidebar.html)中的所有孩子的列表,但我努力根據URL /用戶的選擇獲取單個模型。
感謝您的支持。我的問題是,這個sidebar.html模板(需要與其中的child_id鏈接)不在dashboard.html模板中。 「dashboard.html」模板僅着重於實際內容區域。這個想法是,當用戶打開儀表板時,側邊欄會更新鏈接。說到這一點,我可以從另一個視圖調用一個視圖,並告訴它在第一個視圖被渲染後渲染? –
模板不是視圖;您需要通過覆蓋「dashboard.html」中的其他模板塊(來自'sidebar.html')來重寫它,以使其具有上下文 - 或使用模板標籤來接收對象並從側邊欄呈現內容。 html' - 例如'{%display_sidebar child%}' –
再次感謝。我不可能把'sidebar.html'放在'dashboard.html'裏面 - 還有很多其他的頁面,比如'dashboard.html',我不想在每個地方包含'sidebar.html'。我一直在努力理解這些自定義包含標籤。同樣,當模板完全獨立時,如何跨所有這些不同的頁面獲取單個子模型實例?唯一相同的是URL。 –