Django模板标签vs包含导航

时间:2013-02-27 09:53:51

标签: django django-templates

Django的新手,并且是第一次使用模板引擎。我的问题是......

我的base.html中有一个导航div。现在在其他语言中我会使用包含导航元素的html。在Django中,我看到我们有一个叫做模板标签的东西。那么我应该使用模板标签来显示导航或旧学校的演示元素(我相信Django也支持)?

另外,为了保持这是一个stackoverflow问题,一个例子会很有用。

由于

1 个答案:

答案 0 :(得分:3)

模板标签实际上是用于应用特殊处理来实现所需的输出。使用模板标记可以访问python语言的所有功能。 django模板语言要简单得多。

我建议您坚持使用include而不是编写模板标记。它会更容易阅读。

请记住,您应该在视图中(或模板/模板标记之外的某个位置)生成变量列表。

def your_view(request):
    #...
    nav_items = Category.objects.filter(include_in_nav=True)
    return render(request, 'your_page.html', {'nav_items': nav_items})

然后在your_page.html中你会做 -

{% include 'nav.html' %}

然后nav.html会像 -

<nav>
    {% for item in nav_items %}
        <a href="{% url cat_page item %}>{{ item.title }}</a>
    {% endfor %}
</nav>

查看templatescustom template tags上的文档。