2012-04-18 27 views
0

ナビゲーション、サイドバー、ログインパネルなど、ページの各部分ごとに別々のテンプレートを作成したいと思います.Djangoは合成ではなく継承を使用しているようです。私は、テンプレートを分割して各テンプレートにテンプレート固有のモデルを渡すサポートがあるのだろうかと思っていました。djangoはテンプレートを分割してサポートしていますか?

値= { 'navbar_data' = ... 'sidebar_data' = ... }

{{template.render( 'ナビゲーションバー'、navbar_data)}:私のようなものと思っています} {{template.render( 'sidebar'、sidebar_data)}}

答えて

2

これを実行する多くの方法があります。

これには組み込みテンプレートセットincludeを使用できます。このテンプレートタグを使用すると、テンプレートの特定のフラグメントを使用して再利用できます。これは通常、単一のモデルを表し、サイト全体で使用されるミニテンプレートで最も便利です。これは、あなたが含まテンプレート

で使用されるコンテキストを作ることができるようにwith templatetagとそれを組み合わせる場合は別の方法として、単にblockを使用すると、あなたがあなたが最後に

探している感じを与えることに特に便利ですより包括的なコントロールを提供するために、カスタム包含テンプレートタグ(https://docs.djangoproject.com/en/1.4/howto/custom-template-tags/#inclusion-tags)を使用することができます。これらを使用すると、完全なカスタムコンテキストでサブテンプレートをレンダリングできます。

0

これがテンプレートテンプレートの目的です。次に、あなたのテンプレートでこの

{% load mytags %} 

{% navbar %} {% sidebar %} 

公式ドキュメントはこのについての情報をたくさん持っていない、myappに/ templatetags/mytags.pyというファイルにタグを定義します。

関連する問題