`context_instance = RequestContext (request)` использует куки в django - PullRequest
1 голос
/ 12 декабря 2010

когда я меняю вид домашней страницы:

def home(request):
    return render_to_response('homepage.html')

до

def home(request):
    return render_to_response('homepage.html',context_instance=RequestContext(request))

user, которые входят в мой сайт, будут всегда входить в систему, даже когда я закрываю веб-браузер (firefox)

почему context_instance=RequestContext(request) может это сделать? Использует ли он куки?

как долго он будет поддерживать это состояние.

спасибо

homepage.html:

{% if user.is_authenticated %}
    <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
    <p>Welcome, new user. Please <a href="/account/login_view">login</a></p>
{% endif %}

Ответы [ 2 ]

4 голосов
/ 12 декабря 2010

Добавление RequestContext вообще не меняет состояние входа пользователя в систему. И ваш вопрос о файлах cookie не имеет никакого смысла. RequestContext делает определенные переменные доступными в контексте шаблона - среди них, если у вас включен процессор контекста auth, есть переменная user.

Без RequestContext пользователь все еще находится в системе, но вы не передаете переменную user в контекст, поэтому ваш оператор if оценивается как False. Ничего общего с фактическим статусом пользователя.

0 голосов
/ 12 декабря 2010

Если вы добавите context_instance=RequestContext(request) контекст из контекстных процессоров , которые вы определили в settings.py, вы будете добавлены в шаблон, в вашем случае это включает текущий пользовательский объект в user. Если вы удалите его, переменная не будет существовать, но внутри шаблона это не вызовет исключения, но HTML для не вошедшего в систему пользователя будет обработан!

Информация о пользователе хранится в сеансе , в котором используются файлы cookie.

...