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. 獲取當前請求的url
- 3. jQuery獲取當前會話的請求
- 4. Delphi TWebModule(IIS-ISAPI):獲取當前請求
- 5. 請求中的GWT RequestContext ENum
- 6. 請求從當前用戶
- 7. 從當前請求獲取應用程序url
- 8. 從h獲取當前值:上Ajax請求輸入
- 9. 如何從當前請求中獲取HTML,在回發中
- 10. 從PHP中的當前請求獲取http標頭
- 11. 如何獲取CodeIgniter中的獲取請求的當前網址?
- 12. 如何獲取當前(最新)json獲取請求url?
- 13. 嘗試獲取ConnectionID以獲取SignalR中的當前請求
- 14. Http獲取請求中止以前的獲取請求
- 15. 從WCF請求獲取請求域名?
- 16. 如何獲得當前請求
- 17. Symfony2 - 獲取主要請求的當前路由在樹枝部分/子請求
- 18. Angular 2從http獲取請求的對象獲取請求
- 19. ServletFileUpload.parseRequest()想要RequestContext而不是HttpServletRequest請求
- 20. 獲取AbstractType從請求
- 21. 從urllib請求獲取unicode
- 22. 從IE獲取HTTP請求
- 23. API從URL獲取請求
- 24. 從XHR獲取請求頭
- 25. 從AJAX請求獲取Cookie
- 26. 從IClientMessageInspector獲取請求URI
- 27. 獲取要從請求時
- 28. 獲取從URL請求
- 29. 從獲取請求中獲取數據?
- 30. 從獲取請求獲取div數據
有點遲到了,這附帶了我剛剛進入Django的免責聲明,但是當你傳遞的字典參數'RequestContext'你可能會添加'request':request',然後使用context.get('request')檢索它。它感覺不太對,它需要你改變你的觀點來傳遞它,但如果你確實需要它,你可以做到這一點。另外,如果您找到另一種(更好的)方式,請更新。 :) – mway