在Django Flatpages中获取当前活动页面

时间:2014-01-27 00:28:15

标签: django

我正在使用flatpages来添加我的内容。

我想知道是否有办法获取活动页面,以便我可以在我的导航栏上正确设置样式?

谢谢!

3 个答案:

答案 0 :(得分:0)

如果你使用django平面页面,那么你已经定义了URL。

EG:  url(r'^license/$', 'flatpage', {'url': '/license/'}, name='license'),

使用request.path_info可以获取当前页面。这就是你在寻找的东西吗?还有什么呢?

答案 1 :(得分:0)

flatpages应用使用RequestContext,这意味着请求中的详细信息会通过中间件向上推送。如果启用了request模板上下文处理器,则可以在模板中访问这些请求变量。启用此功能后,您的所有模板都可以访问该请求,并从那里获取当前请求的URL。

所以,

  1. 启用django.core.context_processors.request模板上下文处理器(默认情况下不启用)。您需要确保不要禁用默认的上下文处理器,因此请将其添加到settings.py

    from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
    
    TEMPLATE_CONTEXT_PROCESSORS = TCP + (
        'django.core.context_processors.request',
    )
    
  2. 在您的模板中,根据您的需要使用{{ request.get_full_path }}{{ request.path }}

答案 2 :(得分:0)

<a href="{{ flatpage.url }}" {% if flatpage.url == request.path %}class="active-page"{% endif %}>{{ flatpage.title }}</a>

如果您的请求背景有问题,可以查看Burhan Khalid的答案。