делает «context_Instance = requestcontext (запрос)` использует куки в django
-
08-10-2019 - |
Вопрос
Когда я меняю вид на домашнюю страницу:
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)
могу сделать это? Использует ли это cookies?
Как долго это будет поддерживать это состояние.
Спасибо
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 %}
Решение
Добавление запросаContext не меняет вообще зарегистрированное состояние пользователя. И ваш вопрос о куки не имеет никакого смысла вообще. Что делает запросContext, представляет определенные переменные, доступные в контексте шаблона - среди них, предполагая, что у вас есть auth
Включенный процессор контекста, является user
Переменная.
Без запросаContext пользователь все еще вошел в систему, но вы не проходите user
переменная в контексте, поэтому ваш if
Заявление оценивает ложь. Нечего делать с фактическим статусом пользователя вообще.
Другие советы
Если вы добавите context_instance=RequestContext(request)
контекст от контекстные процессоры Вы определены в вашем settings.py
будет добавлен к шаблону, в вашем случае это включает в себя текущий объект пользователя в user
Отказ Если вы удалите его, переменная не существует, но внутри шаблона это не поднимает исключение, но HTML для не зарегистрированного пользователя у пользователя есть!
Информация о пользователе хранится в сессия, который использует куки.