使用Django进行菜单导航

时间:2013-02-13 16:43:58

标签: html django

我有观点:

def about(request):
    return render(request, 'about.html', {'page_about_exist':1,})

在html中我有这段代码:

<li {% if page_about_exist %} class="active" {% endif %}><a href="{% url about_project %}"> About</a></li>

所以,如果我转到About页面,在菜单中它有类活动,我可以直观地看到它。 没有字典还有其他方法吗?因为我有url

url(r'^accounts/login/$', 'django.contrib.auth.views.login', name='login',),

我的字典方式在那里看起来不太好。感谢。

2 个答案:

答案 0 :(得分:1)

你应该使用模板继承来做这种事情。例如,您的base.html可能包含导航列表:

<li{% block products %}{% endblock %}><a href...>Products</a></li>
<li{% block about %}{% endblock %}><a href...>About</a></li>

然后在您的about模板中(假设它继承自base),您有:

{% block about %} class="active"{% endblock %}

这将使用您为活动页面定义的类呈现为纯html。因为它使用简单的模板继承,所以你也可以通过它获得非常好的控制。

答案 1 :(得分:1)

我使用自己的名为ifnav的模板标记。

用法非常简单。只需将其添加到INSTALLED_APPS并确保请求上下文处理器已激活。

之后你可以这样写:

<li {% ifnav "^/about/" %} class="active" {% endifnav %}><a href="{% url about_project %}"> About</a></li>

对于当前项目,我使用Django CMS来处理渲染导航。