Django RequestContext
是否有办法获取它所关联的HttpRequest
对象?它是否有像get_request()
之类的方法来获取传入构造函数的request
?我需要从我只收到RequestContext
的方法中引用它。从RequestContext获取当前请求?
回答
将'django.core.context_processors.request'
设置为TEMPLATE_CONTEXT_PROCESSORS
设置。并得到请求,其中上下文可用使用:
request = context['request']
谢谢! (我需要输入15个字符:p) –
否,django.template.RequestContext
(其居住在django/template/context.py
)不存储到请求对象的任何参考:
class RequestContext(Context):
"""
This subclass of template.Context automatically populates itself using
the processors defined in TEMPLATE_CONTEXT_PROCESSORS.
Additional processors can be specified as a list of callables
using the "processors" keyword argument.
"""
def __init__(self, request, dict=None, processors=None, current_app=None, use_l10n=None):
Context.__init__(self, dict, current_app=current_app, use_l10n=use_l10n)
if processors is None:
processors =()
else:
processors = tuple(processors)
for processor in get_standard_processors() + processors:
self.update(processor(request))
如果Django的被修补以包括在构造简单的线是这样的:
self.request = request
和函数的定义是这样的:
def get_request(self):
return self.request
然后我们会做生意。不幸的是,我们不是,所以答案是“不,你不能得到与RequestContext
相关联的请求对象。”
仅供2014年偶然发现的读者,像我:汉森的答案是正确的,接受的答案是错误的。只需将django.core.context_processors.request添加到TEMPLATE_CONTEXT_PROCESSORS即可。 – Bunkerbewohner
@Bunkerbewohner我会接受他的回答,因为我的过时了。这个问题最初是在2011年提出的,Django从那时起就已经发生了变化。 –
- 1. 获取当前请求URL的方案
- 2. jQuery获取当前会话的请求
- 3. Delphi TWebModule(IIS-ISAPI):获取当前请求
- 4. 如何从当前请求中获取HTML,在回发中
- 5. 如何获取CodeIgniter中的获取请求的当前网址?
- 6. Http获取请求中止以前的获取请求
- 7. 从WCF请求获取请求域名?
- 8. Angular 2从http获取请求的对象获取请求
- 9. 从IE获取HTTP请求
- 10. 获取要从请求时
- 11. 从IClientMessageInspector获取请求URI
- 12. 从XHR获取请求头
- 13. 从获取请求中获取数据?
- 14. 从获取请求获取div数据
- 15. Ajax请求 - 从当前服务器
- 16. 如何防止Url.RouteUrl(...)从当前请求
- 17. 如何从bootstrap访问当前请求?
- 18. 如何获取Django TemplateLoader查看当前上下文或请求?
- 19. 如何在HttpModule中获取当前请求的SPWebApplication?
- 20. 获取WebRequest中使用的当前请求的凭据
- 21. 如何获取请求网络连接的当前URL?
- 22. 无法在App Engine中获取当前用户的AJAX请求
- 23. 如何获取请求库中的当前页面URL?
- 24. 如何获取当前请求的域名?
- 25. 防止新的请求在jQuery中获取先前的请求
- 26. 从外部代码抓取当前web api请求
- 27. Perl CGI从不同的请求获取参数到当前的URL
- 28. 如何从前一页获取请求的URl
- 29. 从轨道中的先前请求获取实例变量
- 30. 在地图上显示之前从API请求获取坐标
有点迟到了,这附带了我刚刚进入Django的免责声明,但是当你传递的字典参数'RequestContext'你可能会添加'request':request',然后使用context.get('request')检索它。它感觉不太对,它需要你改变你的观点来传递它,但如果你确实需要它,你可以做到这一点。另外,如果您找到另一种(更好的)方式,请更新。 :) – mway