2010-12-11 2 views
1

, когда я изменить вид домашней страницы:делает то `context_instance = RequestContext (запрос)` использование куки в Джанго

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

к

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

user, кто войти в мой сайт всегда будет войти в систему, даже если i закрыть веб-браузер (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 %} 

ответ

4

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

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

+0

спасибо Даниэлю, но почему пользователь всегда вошел в систему, даже когда я закрываю firefox. Сохраняет ли это состояние в базе данных. – zjm1126

0

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

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

Смежные вопросы