Вам необходимо добавить django.core.context_processors.request
к вашим шаблонным контекстным процессорам . Тогда вы можете получить к ним доступ так:
{{ request.session.name }}
Если вы используете пользовательские представления, убедитесь, что вы передаете экземпляр RequestContext. Пример взят из документации :
from django.shortcuts import render_to_response
from django.template import RequestContext
def some_view(request):
# ...
return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))
Обновление 2013: Судя по ответам, которые я все еще получаю за этот ответ, люди все еще находят его полезным, более чем через три года после его написания. Однако обратите внимание, что, хотя приведенный выше код все еще действителен, в настоящее время существует гораздо более простой способ сделать это. render()
- функция, очень похожая на render_to_response()
, но она использует RequestContext
автоматически, без необходимости передавать ее явно:
from django.shortcuts import render
def some_view(request):
# ...
return render(request, 'my_template.html', my_data_dictionary)