我正在使用包含标记在我的网站中显示菜单。但是没有按预期工作。它甚至没有抛出任何错误。
vertical_meny.py
from django import template
register = template.Library()
@register.inclusion_tag('vertical-menu.html')
def give_menu_items():
abc =[
{'name':'as', 'link':'/somelink'},
{'name':'lsl', 'link':'somelink2'},
]
pqr =[
{'name':'sd', 'link':'/somelink3'},
{'name':'sdd', 'link':'somelink2'},
]
my_tabs = [
{'name':'Main', 'link':'/main', 'subtabs': abc},
{'name':'Advanced', 'link':'/advanced', 'subtabs': pqr},
]
return { 'my_tabs' : my_tabs, }
垂直menu.html
<div class="col-md-3 md-margin-bottom-20">
<div class="panel-group menu-v1">
{% for tab in my_tabs %}
<h1>Hello</h1>
<li>{{ tab }}</li>
{%endfor%}
</div>
</div>
base.html文件
{% load vertical_menu%}
{% include 'vertical-menu.html' %}
django不会进入vertical-menu.html的for循环内部,也不会在其中呈现任何html。似乎my_tabs不包含任何内容。我不知道我哪里出错了。请帮忙。
答案 0 :(得分:2)
这不是你如何使用包含标签。您不直接包含模板,只需调用标记即可。
{% give_menu_items %}