Вам следует проверить функцию просмотра, чтобы увидеть, откуда берется переменная user
. Если вы специально не передаете user
в контекст из представления, это ваша проблема.
Вы делаете , тем не менее, имеете доступ к request.user
, и это всегда будет возвращать true в шаблоне, отображаемом из представления с декоратором @login_required
.
Причина, по которой я могу с уверенностью сказать, что с декоратором нет ничего плохого, заключается в том, что в коде для User
и AnonymousUser
(расположенном в django.contrib.auth.models
) метод is_authenticated
строго возвращает true для User
и false для AnonymousUser
. Декоратор этого не меняет и не может изменить. И это означает, что ваш шаблон на самом деле не получает объект User
, где вы проверяете user
.