2009-07-13 96 views
0

我剛開始使用django進行開發。目前,我遇到以下問題:我必須編寫一個能夠表示不同類別數據的頁面模板。例如,假設我有病人的醫療記錄。關於這個患者的表示的信息是,例如:約任何其他分析(例如TAC,NMR特定數據:Django模板:有條件添加分段

  1. 名字,姓氏和類似的數據有關當前治療
  2. ..和超出
  3. 數據,心臟,血液,無論)

假設對於每個條目3點,我需要提出一個特定的部分。 此頁面的模板可能看起來像是一長串系列的if語句,每個數據條目一個,只有當該信息存在時纔會使用該語句。這會導致很長的模板。

一種可能的解決方案是使用所述include指令在模板,然後片段主模板,以便代替if的列表我有一個列表包括,一個用於每個if

只是出於好奇,我想知道是否有人知道這種模式的另一種策略,無論是在模板級別或在視圖級。

回答

2

見這個例子:http://www.djangosnippets.org/snippets/1057/

從本質上講,你可以通過在模板模型的領域循環。

我想你只是想顯示所有這些不同領域的數據正確?循環遍歷每個領域應該爲您提供您正在尋找的結果。

或者,您可以在視圖中添加條件來設置要在視圖中顯示的內容。它會讓你的視圖功能更加混亂,但會清理模板。該視圖還使測試某些部分的存在變得更加容易。

+0

我喜歡第二個提議。事實上,我可以在視圖中安排合適的邏輯(我擁有完整的面向對象功能),並製作一個非常通用的模板來渲染數據。 – 2009-07-19 14:04:07

1

這個問題的答案取決於你如何組織你的數據,你不說很多 - 是在單獨的相關表,子類車型,在同一個模型各個字段的信息附加位... ?

一般來說,這聽起來像是模板標籤的工作。我可能會編寫一個自定義標記,將父對象作爲參數,並檢查數據以確定要輸出的內容。每個選項都可能由不同的子模板呈現,由標籤本身調用。