我試圖創建包含標籤,因此我可以在每個頁面的導航欄中顯示數據。標籤將被包含在「base.html」中,以便它應該在任何地方顯示。Django包含標籤不顯示數據
tags.py
@register.inclusion_tag('menu.html')
def show_hoods(HoodList):
gethoods = Hood.objects.all()
return {'gethoods': gethoods}
menu.html
{% for hood in gethoods %}
<h3>{{ hood.name }}</h3>
{% endfor %}
出於某種原因,menu.html模板是空白的,並且不顯示任何數據。另外,一旦我運行了menu.html,簡單的{%include'menu.html'%}會在base.html裏面工作嗎?會自動呈現嗎?
編輯: 基於下面的反饋,上述代碼是正確的,但是base.html文件代碼是不正確的使用inclusion_tag未裝載有{%包括%}但{% load %}
代替。
修正base.html文件
{% load tags %}
{% show_hoods hoodlist %}
感謝您的反饋!
你如何在base.html中添加包含標籤?另外,什麼是HoodList? –
HoodList只是該請求的名稱,我應該將其重命名爲「請求」嗎?根據我計劃使用{%include%}標記的base.html。 – WayBehind
使用名稱添加包含標籤。因此,在base.html中添加{%show_hoods%}應該使用Hood對象列表來呈現menu.html。直接查看menu.html會顯示爲空,因爲menu.html需要show_hoods中傳入的上下文變量(gethoods)。 –