0

私の django アプリケーションでは、いくつかのナビゲーション アイテムを含むベース テンプレートを作成しました。また、フォームを含む別のテンプレートを{{含めました}}。これを各ページで利用できるようにしたいと考えています。このフォーム テンプレートには、データベースからいくつかの要素を取り込むビューがあり、view.get でこれを行います。しかし、テンプレートを {{ include }} するだけで、そのビューの get が呼び出されないことがわかりました。

Finances/base.html は基本テンプレートで、finances/month_list.html はインクルードしたいテンプレートです

base.html は次のようになります。

<html>
<head>
    <title>PFM</title>
</head>
<body>
<div class="navigation">
    <a href= "{% url 'finances:current_month' %}">Home</a><!--this month's transactions-->
    <a href= "{% url 'finances:accounts' %}">Liability Details</a><!--liability account details-->
    <a href= "{% url 'finances:accounts' %}">Asset Details</a><!-- asset account details-->
    <a href= "{% url 'finances:create' %}">New Account</a><!-- create an account-->
</div>

<div class="content">

    {% block content %}

    {% endblock %}

</div>
<br/>
<div class="bottom_nav">
    {% include "finances/month_list.html" %}
</div>
</body>
</html>

残りのコードはここにあります: https://gist.github.com/shelbydz/6001359 (コードが多いので、リンクしても問題ないと思います)

ありがとう、

4

2 に答える 2

2

ビューが呼び出されないのは正常です。実際、これはテンプレートが現在ビューに関するものではないためです (1 つのテンプレートが多くの異なるビューや他のテンプレートで使用される場合があります)。

あなたの場合、コンテキスト プロセッサを作成するオプションとテンプレート タグを作成するオプションの 2 つがあります。コンテキスト プロセッサは各ビュー コンテキストに必要なデータを追加するため、テンプレートを各ページに追加するだけで済みます。テンプレート タグは別のオプションです。その中にロジックを作成し、テンプレートを変数として渡すこともできます。こうすることで、このフォームを必要としないページのアプリが少し速くなります。

于 2013-07-15T17:02:47.273 に答える
0

IIian IIiev ソリューションを使用すれば問題ないはずです。ページのコンテキスト プロセッサ/テンプレート タグ。

于 2013-07-15T17:47:15.997 に答える