2014-01-27 117 views
0

我想將其他模板擴展到我的blog.html,無論我嘗試擴展它,它都不起作用。 博客/ index.html的將其他應用程序擴展到我的模板工作

{% block nav %} 
    <ul id="nav"> 
     <li>{% block nav-blog %}<a href="/blog/">Blog</a>{% endblock %}</li> 
     <li>{% block nav-photo %}<a href="/photo/">Photo</a>{% endblock %}</li> 
    </ul> 
{% endblock %} 
<div class="news"> 
    {% block polls %} 
     {% extends 'polls/index.html' %} 
    {% endblock %} 
<div> 

民調/ index.html的

{% if latest_poll_list %} 
    <ul> 
     {% for poll in latest_poll_list %} 
      <li><a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li> 
     {% endfor %} 
    </ul> 
{% else %} 
    <p>No polls are available.</p> 
{% endif %} 

回答

0

通常延伸到具有在模板的頂部的模板被卡住,而不是地方。 在模板中,您可以使用您在基本模板中設置的標籤。

+0

是的,這是正確的,但如果我把它放在頁面頂部它也不會顯示它 – Eriks

+0

hmm,那麼確保你可以訪問模板而不擴展它,並且確保你有這些模板路徑設置在設置文件中正確設置。 – Anup

0

你需要確保你在這裏做了兩兩件事:

  1. 聲明在您的index.html一個「導航」塊。這會讓django知道你希望覆蓋的索引html的部分,當模板extends它。任何你在索引html中的「nav」塊中放置的內容都將被視爲默認內容。
  2. 您需要在blog.html的開頭使用「extends」模板標籤,以便django知道您想要擴展的模板。

像這樣:

index.html

{% block nav %} 
    <div> 
    Some default html here.. 
    </div> 
{% endblock %} 

然後blog.html

{% extends index.html %}  
{% block nav %} 
    <div> 
    This is what will render 
    </div> 
{% endblock %} 

而且,你會想測試index.html試圖把它擴大到驗證前Django正在找到該模板。如果不是,則需要在settings.py文件中將找到的目錄添加到TEMPLATE_DIRS陣列中。

相關問題