2012-06-23 57 views
4

所以我想要做的是在我自己的基礎模板中爲我的項目添加django管理標題。我將管理模板中的base.html複製到我的項目中。我可以以某種方式將{%block header%}標記放入base.html中,然後在我自己的基礎模板中爲我的項目調用它?django - 從管理員複製標題到所有模板

{% 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

我結束了從管理延長我的主模板「base.html文件'模板並從那裏開始。有點凌亂,但它的作品

0

'base.html'延長所有模板將包含內部{% block header %}{% endblock %}的內容,只要不重寫塊或其祖先(刪除{% block header %}...{% endblock %}部分)。

如果有不從base.html延伸模板,你可以把代碼放到他們的共同基礎,或者使用類似inline taginclusion tags

此外,對於代碼正常進行身份驗證的用戶,您需要以確保有上下文user變量:通常它已經存在,或者您需要重新啓用"django.contrib.auth.context_processors.auth"如果你之前刪除它,檢查the doc