4

所以我想做的是在我自己的项目基本模板中添加 django 管理头。我将 base.html 从管理模板复制到我的项目中。我可以以某种方式将 {% block header %} 标签放在 base.html 中,然后在我自己的项目基本模板中调用它吗?

{% block header %}
<!-- Header -->
<div id="header">
    <div id="branding">
    {% block branding %}{% endblock %}
    </div>

    {% if user.is_active and user.is_staff %}
    <div id="user-tools">

        {% trans 'Hi,' %}

        <strong>{% filter force_escape %}{% firstof user.first_name user.username %}{% endfilter %}</strong>.
        {% block userlinks %}
            {% url 'django-admindocs-docroot' as docsroot %}
            {% if docsroot %}
                <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
            {% endif %}
            <a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /
            <a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
        {% endblock %}
    </div>
    {% endif %}
    {% block nav-global %}{% endblock %}
</div>
<!-- END Header -->
{% endblock %}
4

2 回答 2

0

扩展自的所有模板都将包含and'base.html'中的内容,只要它们不覆盖块或其祖先(通过删除部分)。{% block header %}{% endblock %}{% block header %}...{% endblock %}

如果有不从 扩展的模板base.html,您可以将代码放入它们的公共基础中,或使用内联标签包含标签之类的东西

此外,为了使代码对经过身份验证的用户正常工作,您需要确保上下文中存在变量:通常它已经存在,或者如果您之前已将其删除,则user需要重新启用,检查文档"django.contrib.auth.context_processors.auth"

于 2012-06-24T16:28:42.743 回答
0

我最终从管理员“base.html”模板扩展了我的主模板并从那里开始。有点乱,但它的工作原理

于 2012-07-12T03:09:02.540 回答