所以我想要做的是在我自己的项目基础模板中添加django admin标头。我将base.html从admin模板复制到我的项目中。我可以以某种方式将{%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 %}
答案 0 :(得分:0)
从'base.html'
延伸的所有模板都会包含{% block header %}
和{% endblock %}
内的内容,只要它们不覆盖块或其祖先(通过删除{% block header %}...{% endblock %}
部分)。
如果某些模板未从base.html
扩展,您可以将代码放入其公共基础,或使用inline tag或inclusion tags
此外,为了使代码能够对经过身份验证的用户正常工作,您需要确保上下文中存在user
变量:通常它已经存在,或者如果您需要重新启用"django.contrib.auth.context_processors.auth"
之前已将其删除,请检查the doc
答案 1 :(得分:0)
我最终从管理员'base.html'模板扩展了我的主模板并从那里开始。有点乱,但它有效