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

视图没有被调用是正常的。实际上这是因为模板现在与视图无关(一个模板可以用于许多不同的视图和其他模板)。

在您的情况下,有两个选项 - 创建上下文处理器和创建模板标签。上下文处理器将为每个视图上下文添加所需的数据,因此您只需将模板添加到每个页面。模板标签是另一种选择——您可以在其中创建逻辑,也可以将模板作为变量传递。这样,对于不需要此表单的页面,您的应用程序会更快一些。

于 2013-07-15T17:02:47.273 回答
0

使用 IIian IIiev 解决方案应该没问题。页面的上下文处理器/模板标签。

于 2013-07-15T17:47:15.997 回答