django包含标签不起作用

时间:2014-05-09 07:01:50

标签: django django-templates

我正在使用包含标记在我的网站中显示菜单。但是没有按预期工作。它甚至没有抛出任何错误。

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不包含任何内容。我不知道我哪里出错了。请帮忙。

1 个答案:

答案 0 :(得分:2)

这不是你如何使用包含标签。您不直接包含模板,只需调用标记即可。

{% give_menu_items %}