在我的django应用程序中,我创建了一个带有一些导航项的基本模板。我还{{包含}}另一个包含表单的模板。我希望每个页面都可以使用它。此表单模板有一个视图,它填充数据库中的一些元素,我在view.get中执行此操作。但是我发现当我只是{{include}}模板时,它的视图的获取并没有被调用。
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 (这是很多代码,我希望链接它没关系)
谢谢,
答案 0 :(得分:2)
不调用视图是正常的。实际上这是因为模板现在没有关于视图(一个模板可能在许多不同的视图和其他模板中使用)。
在您的情况下,有两个选项 - 创建上下文处理器和创建模板标记。上下文处理器将为每个视图上下文添加所需的数据,因此您只需将模板添加到每个页面。模板标签是另一种选择 - 您可以在其中创建逻辑,也可以将模板作为变量传递。这样,对于不需要此表单的页面,您的应用程序会更快一些。
答案 1 :(得分:0)
使用IIian IIiev解决方案你应该没问题。页面的上下文处理器/模板标记。