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