在模板中读取路径

时间:2010-01-24 17:12:50

标签: python django django-templates

有没有办法读取当前页面的路径?例如,我在www.example.com/foo/bar/ - 我想阅读'/ foo / bar /'。我必须在模板文件中执行此操作而不修改视图,并且我有太多的视图文件来编辑每个视图。

干杯。

3 个答案:

答案 0 :(得分:3)

如果您将django.core.context_processors.request添加到TEMPLATE_CONTEXT_PROCESSORS设置,它会将request变量添加到每个使用RequestContext的模板渲染中(这是大多数内置的 - 在那些)。这是当前请求的HTTPRequest对象,其path属性是请求的路径。可以找到更多信息in the docs

答案 1 :(得分:2)

答案 2 :(得分:2)

我最终使用了这个,但一路上遇到了一点打嗝。这是我的解决方案,希望我能节省一些时间。

首先,我将此行添加到我的settings.py文件中:

TEMPLATE_CONTEXT_PROCESSORS = ("django.core.context_processors.request",)

我发现它允许我从模板中访问请求路径,该模板已使用模板变量RequestContext传递{{ request.path }}。但是,它还禁用了所有其他上下文处理器。为了解决这个问题,我尝试将默认值添加到TEMPLATE_CONTEXT_PROCESSORS元组。起初这个失败了,因为我使用了Django 1.2的上下文处理器(我安装了Django 1.1)。解决了这个问题后,我留下了以下设置文件:

TEMPLATE_CONTEXT_PROCESSORS = ("django.core.context_processors.auth",
 "django.core.context_processors.debug",
 "django.core.context_processors.i18n",
 "django.core.context_processors.media",
 "django.core.context_processors.request",
 )