делает «context_Instance = requestcontext (запрос)` использует куки в django

StackOverflow https://stackoverflow.com/questions/4419385

Вопрос

Когда я меняю вид на домашнюю страницу:

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 для не зарегистрированного пользователя у пользователя есть!

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top