0

我有一个看起来像这样的模板:

主模板,home.html:

{% extends "framed.html" %}
<h2> stuff <h2>

framed.html 看起来像

{% block header %}
<h1>{{ sitename }}</h1>
{% endblock %}

通常,当我调用这些视图时,我会给它一个上下文,其中包含一个分配了 get_current_site().name 的键“sitename”,它工作正常。

但是,我也想在一组模板的顶部使用 framed.html,这些模板也被 django 默认视图调用。例如:

 return HttpResponseRedirect(reverse('django.contrib.auth.views.login'))

该页面的顶部永远不会显示 {{sitename}},因此我最终在页面顶部有一些空白区域。平面页面、注销等也是如此。有没有办法可以将相关上下文添加到所有这些“内置”页面中?

4

1 回答 1

3

您可以编写自己的模板上下文处理器,它将在提供给每个模板的参数中添加所需的变量。

更多细节在编写你自己的上下文处理器

于 2013-01-21T06:08:36.600 回答