模板中的阅读路径[重复]

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",
 )

【讨论】:

以上是关于模板中的阅读路径[重复]的主要内容,如果未能解决你的问题,请参考以下文章

模板中的阅读路径[重复]

模板中的阅读路径[重复]

阅读内置的python模块[重复]

从python中的函数对象获取易于阅读的函数名称[重复]

如何减去 django 模板中的两个字段?

程序员修炼之道——从小工到专家阅读笔记02