Нет, 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
».