我尝试将应用结果包含在基本模板中。模板显示正常但我没有看到任何结果。当我直接打开app url(127.0.0.1/Project/config/)时,它会显示结果。
Project / urls.py
urlpatterns = patterns('',
url(r'^$', 'Project.views.index'),
url(r'^config/', DisplayChangelog),
)
config / views.py
from config.models import Changelog
def DisplayChangelog(request):
changes = Changelog.objects.all()
t = loader.get_template("changelog.html")
c = Context({'changes': changes})
return HttpResponse(t.render(c))
templates / base.html
...
<ul class="nav navbar-nav">
{% include "changelog.html" %}
</ul>
...
templates / changelog.html
...
{% for change in changes %}
<li class="media">
<div class="body">
{{ change.desc }}
<div class="date">{{ change.date }}</div>
</div>
</li>
{% endfor %}
...
答案 0 :(得分:0)
您可以在定义&#34;更改后尝试此操作&#34;您视图中的变量:
{% include "changelog.html" with changes=changes %}
答案 1 :(得分:0)
首先,如果你在每个页面上使用它们,你必须在base.html
中放置一些变量,但你也必须以某种方式传递这些变量。当然,您不会在每个视图中向上下文添加一个对象,因此可以想到context processors。如果这真的是您需要的话,请查看文档。
在您的情况下,我认为只需将changes
变量添加到index
视图的上下文中,并将changelog
包含在呈现的模板中通过index
查看。
所以基本上我想说,如果你想在模板中使用它们,你必须将对象传递给视图的上下文,即使你在包含的模板中使用它们也是如此。