Django: is_authenticated и is_anonymous оба вернут истина после выхода

Я использую django-registration и просто настроил его.

{{user.is_authenticated }}

верно, хотя я уже зашел в / accounts / logout / и вывел пользователя из системы.

{{user.is_anonymous }} 

также возвращает истину. Согласно django docs, эти два должны отличаться:

is_anonymous: Всегда возвращает False. Это способ различать объекты User и AnonymousUser. Как правило, вы должны предпочесть использование is_authenticated () этому методу.

и

is_authenticated: Всегда возвращает True. Это способ узнать, прошел ли пользователь аутентификацию. Это не подразумевает каких-либо разрешений и не проверяет, активен ли пользователь - это только указывает, что пользователь предоставил действительное имя пользователя и пароль.

Я использую стандартные представления, которые идут с django-registration и haven ' я их еще не трогал. В tempalate у меня есть следующий код:

{% if user.is_authenticated %}
{% user }}
{% if user.is_anonymous %}
    is anonymous
{% endif $}
{% else %}
    gotta login
{% endif %}

Где может быть проблема? Буду очень благодарен!

ОБНОВЛЕНИЕ: Это способ узнать, прошел ли пользователь аутентификацию. Это не подразумевает каких-либо разрешений и не проверяет, активен ли пользователь - это только указывает, что пользователь предоставил действительное имя пользователя и пароль.

Я использую стандартные представления, которые идут с django-registration и haven ' я их еще не трогал. В tempalate у меня есть следующий код:

{% if user.is_authenticated %}
{% user }}
{% if user.is_anonymous %}
    is anonymous
{% endif $}
{% else %}
    gotta login
{% endif %}

Где может быть проблема? Буду очень благодарен!

ОБНОВЛЕНИЕ: Это способ узнать, прошел ли пользователь аутентификацию. Это не подразумевает каких-либо разрешений и не проверяет, активен ли пользователь - это только указывает, что пользователь предоставил действительное имя пользователя и пароль.

Я использую стандартные представления, которые поставляются с django-registration и haven ' я их еще не трогал. В tempalate у меня есть следующий код:

{% if user.is_authenticated %}
{% user }}
{% if user.is_anonymous %}
    is anonymous
{% endif $}
{% else %}
    gotta login
{% endif %}

Где может быть проблема? Буду очень благодарен!

ОБНОВЛЕНИЕ: Я заметил, что на домашней странице как is_authenticated, так и id_anonymous возвращают True, а если я перехожу в / accounts / login перед входом в систему, только is_anonymous возвращает true, как и должно быть. А также на домашней странице, если это помогает, у меня есть следующее представление:

def home(request):
    return render_jinja(request, 'index.html', blah = 'ga')

ОБНОВЛЕНИЕ 2: print (request.user.is_authenticated ()) дает False. Затем у меня:

return render_jinja(request, 'index.html', blah = 'ga')

, а в шаблоне user.is_authenticated возвращает FALSE.

ОБНОВЛЕНИЕ 3: Если я использую render_to_response вместо render_jinja, все хорошо. все еще не знаю, как это исправить: (

5
задан mgPePe 28 November 2010 в 22:39
поделиться