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