模板中的阅读路径[重复]
Posted
技术标签:
【中文标题】模板中的阅读路径[重复]【英文标题】:Reading path in templates [duplicate] 【发布时间】:2011-01-08 20:01:27 【问题描述】:有没有办法读取当前页面的路径?例如,我在 www.example.com/foo/bar/ - 我想阅读“/foo/bar/”。我必须在模板文件中执行此操作而不修改视图,而且我有太多视图文件无法编辑每个文件。
干杯。
【问题讨论】:
这个问题以前是怎么问的,当副本是从 2010 年 5 月开始的,而这个问题是从 2010 年 1 月开始的?首先是什么? 【参考方案1】:request.path
【讨论】:
【参考方案2】:如果您将django.core.context_processors.request
添加到您的TEMPLATE_CONTEXT_PROCESSORS
设置,它会将request
变量添加到每个使用RequestContext
(这是大多数内置的)的模板渲染中。这是当前请求的HTTPRequest
对象,其path
属性是请求的路径。更多信息可以在in the docs找到。
【讨论】:
【参考方案3】:我最终使用了它,但在此过程中遇到了一点小问题。这是我的解决方案路径,希望能为别人节省一些时间。
一开始我将这一行添加到我的 settings.py 文件中:
TEMPLATE_CONTEXT_PROCESSORS = ("django.core.context_processors.request",)
我发现它允许我通过使用模板变量 request.path
从已传递RequestContext
的模板中访问请求路径。但是,它也禁用了所有其他上下文处理器。为了解决这个问题,我尝试将默认值添加到 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",
)
【讨论】:
以上是关于模板中的阅读路径[重复]的主要内容,如果未能解决你的问题,请参考以下文章