1

我有这样的看法:

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>

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

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

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

4

2 回答 2

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。因为它使用简单的模板继承,所以您也可以通过它获得非常好的控制。

于 2013-02-13T16:49:24.603 回答
1

我使用我自己的名为ifnav.

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

之后你可以这样写:

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

对于当前项目,我使用负责渲染导航的 Django CMS。

于 2013-02-13T16:55:29.770 回答