2013-02-27 47 views
2

Django的新手和第一次使用模板引擎。我的问题是...Django模板标签和include for nav

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

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

谢谢

回答

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

+0

谢谢你写的这个写得很好的答案,完美只是我之后的信息 – jason 2013-02-27 11:28:17