0

ナビゲーション、サイド バー、ログイン パネルなど、ページの各部分に個別のテンプレートを作成したいと考えています。Django は構成ではなく継承を使用しているようです。テンプレートをパーツに分割し、テンプレート固有のモデルを各テンプレートに渡すためのサポートがあるかどうか疑問に思っていました。私は次のようなことを考えています:

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

{{ template.render('navbar', navbar_data) }} {{ template.render('sidebar', sidebar_data) }}

4

2 に答える 2

2

これを行うには多くの良い方法があります。

これには、組み込みの templatetageincludeを使用できます。このテンプレート タグを使用すると、テンプレートの特定のフラグメントを使用および再利用できます。これは通常、単一のモデルを表し、サイト全体で使用されるミニ テンプレートに最も役立ちます。これは、テンプレートタグと組み合わせてwith、含まれているテンプレートで使用されるコンテキストを作成できる場合に特に便利です。

または、単に使用するだけblockで、探している感触が得られる場合があります

最後に、カスタム インクルージョン テンプレートタグ (https://docs.djangoproject.com/en/1.4/howto/custom-template-tags/#inclusion-tags) を使用して、さらに深いレベルの制御を提供できます。これらにより、完全にカスタムのコンテキストでサブテンプレートをレンダリングできます。

于 2012-04-18T16:11:41.340 に答える
0

それがテンプレートタグの目的です。myapp/templatetags/mytags.py というファイルでタグを定義し、テンプレートでこれを行います

{% load mytags %}

{% navbar %} {% sidebar %}

公式ドキュメントには、これに関する多くの情報があります。

于 2012-04-18T16:03:02.700 に答える