我正在使用flatpages来添加我的内容。
我想知道是否有办法获取活动页面,以便我可以在我的导航栏上正确设置样式?
谢谢!
答案 0 :(得分:0)
如果你使用django平面页面,那么你已经定义了URL。
EG: url(r'^license/$', 'flatpage', {'url': '/license/'}, name='license'),
使用request.path_info可以获取当前页面。这就是你在寻找的东西吗?还有什么呢?
答案 1 :(得分:0)
flatpages应用使用RequestContext
,这意味着请求中的详细信息会通过中间件向上推送。如果启用了request
模板上下文处理器,则可以在模板中访问这些请求变量。启用此功能后,您的所有模板都可以访问该请求,并从那里获取当前请求的URL。
所以,
启用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',
)
在您的模板中,根据您的需要使用{{ 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的答案。