我想强调在导航菜单中的当前页面。 很显然,我需要给菜单链接,如“主动”的一类,当你自己的页面上。 这是一个经典的问题,我见过许多解决方案建议 。 我的问题是我讨厌所有的人,并考虑他们都不是非常干燥。 例如:
@register.simple_tag
def active(request, pattern):
import re
if re.search(pattern, request.path):
return 'active'
return ''
----
{% load tags %}
<div id="navigation">
<a class="{% active request "^/about/" %}" href="/about/">About</a>
<a class="{% active request "^/contact/" %}" href="/contact/">Contact</a>
<a class="{% active request "^/services/" %}" href="/services/">Services</a>
</div>
该标签采用当前的请求和URL表达式返回“积极的”,如果你当前访问此页面。 或者这可以通过命名视图,而不是网址来完成,但原理是一样的。
我的这个主要问题是,我的导航将在我的意见99%,被称为然而,为了得到当前请求的变量还是有解析的RequestContext与这样的模板:
def contact(request):
# snip ...
return render_to_response(
'contact.html',
{ 'myvar' : myvar },
context_instance=RequestContext(request))
为什么我需要这个context_instance行添加到时候恐怕所有,但其中一人需要 ,以获得当前URL /视图突出活动链接的请求变量自己的看法每一个? 这似乎非常潮湿,特别是对于一个功能,必须是在绝大多数Django的网站。 我想在默认情况下被列入该请求,并能选择性地抑制它。 我不能找到一种方法,在中间件做到这一点,因为我不能前拦截模板及其渲染视图返回之后它。
有什么建议?