我在這個例子中hereDjango的:如何讓所呈現的模板的名稱
項目在導航欄是<li>'s
實施bootstrapnavbar
作爲展會上,「選擇」項具有屬性class="active"
:
<li class="active"> <a href="#"> Link1 </a> </li>
<li> <a href="#"> Link2 </a> </li>
在Django中,這些項目將位於一個模板中,該模板包含在任何應該顯示導航欄的模板中。我正想着做這種方式:
<li> <a href="/" class="{% if template_name == "home.djhtml" %}active{% endif %}"> Home </a> </li>
<li> <a href="about/" class="{% if template_name == "about.djhtml" %}active{% endif %}"> About </a> </li>
<li> <a href="contact/" class="{% if template_name == "contact.djhtml" %}active{% endif %}"> Contact </a> </li>
我想知道是否有一個內置的方式來獲得template_name
(即,模板被渲染,傳遞給render_to_response()
,在views.py
)
當然,我可以明確地添加一個template_name
變量到render_to_response()
,這可以解決問題。但考慮幹,我覺得這不應該需要。
顯式優於隱式:) –
您不應該在模板中硬編碼url(使用'{%url%}'templatetag代替),並且您應該依賴urls和'request.path' - 而不是模板名稱 - 檢查鏈接是否有效。 –
感謝您指出@bruno,我會改變這一點。 –