2009-07-13 36 views
0

開発のためにdjangoを使い始めました。現時点では、次の問題があります。異なるカテゴリのデータを表現できるページテンプレートを作成する必要があります。たとえば、患者の医療記録があるとします。この患者について表現された情報、たとえば、以下のとおりです。他の分析(例えばTAC、NMRについての具体的なデータ:Djangoテンプレート:条件付きでセクションを追加する

  • 現在の治療法について..andを超え

    1. 名、姓と同様のデータ
    2. データ、心臓、血液、何でも)

    ポイント3の各エントリについて、特定のセクションを提示する必要があるとします。 このページのテンプレートは、おそらくは一連のifステートメントのように見えます。各ステートメントはその情報が存在する場合にのみ使用されます。これは非常に長いテンプレートになります。

    一つの可能​​な解決策は、テンプレートにincludeディレクティブを使用し、その後代わりif年代のリストのiは、各ifのための1つを含むリストを有するようにメインテンプレートを断片化することです。

    私は誰かがこの種のパターンの代替戦略をテンプレートレベルかビューレベルで知っているかどうかは不思議でした。

    答えて

    2

    は、この例を参照してください:http://www.djangosnippets.org/snippets/1057/

    基本的には、テンプレートでは、モデルのフィールドをループすることができます。

    これらの異なるフィールドに表示されているデータを正しく表示したいと思っていますか?各フィールドをループすると、探している結果が表示されます。

    また、そこに条件を追加することで、ビューに表示する内容を設定することもできます。それはあなたのビュー機能をより厄介にしますが、テンプレートをクリーンアップします。このビューでは、特定のセクションの存在を簡単にテストすることもできます。

    +0

    私は第2の提案が好きです。実際、ビュー(私は完全なOO機能を持っている)に適切なロジックを配置し、データをレンダリングする非常に一般的なテンプレートを作成することができました。 –

    1

    これに対する答えは、データをどのように構造化したかに大きく依存します。つまり、関連する別個のテーブル、サブクラス化されたモデル、同じモデルの個々のフィールドの余分な情報です。 ?

    一般的に、これはテンプレートタグのジョブのようです。おそらく、あなたの親オブジェクトをパラメータとして取ったカスタムタグを書いて、何を出力するかを決定するためにデータを検査するでしょう。それぞれの選択肢は、タグ自体によって呼び出される別のサブテンプレートによってレンダリングされる可能性があります。

    関連する問題