Я использую django-регистрацию и просто настроил ее.
{{user.is_authenticated }}
- правда, хотя я уже зашел в / account / logout / и вышел из системы.
{{user.is_anonymous }}
также возвращает true. Согласно Django Docs, эти два должны быть разными:
is_anonymous: всегда возвращает False. Это способ различения объектов User и AnonymousUser. Как правило, вы должны предпочесть использование is_authenticated () этому методу.
и
is_authenticated: всегда возвращает True. Это способ определить, был ли пользователь аутентифицирован. Это не подразумевает каких-либо разрешений и не проверяет, активен ли пользователь - это только означает, что пользователь предоставил действительное имя пользователя и пароль.
Я использую стандартные представления, которые идут с django-регистрацией, и еще не коснулся их. В шаблоне у меня есть следующий код:
{% if user.is_authenticated %}
{% user }}
{% if user.is_anonymous %}
is anonymous
{% endif $}
{% else %}
gotta login
{% endif %}
Где будет проблема? Я буду очень благодарен!
UPDATE:
я заметил, что на домашней странице is_authenticated и id_anonymous возвращают значение True, в то время как если я захожу в / account / 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, все хорошо. все еще не знаю, как это исправить: (