как заставить "request.user.is_authenticated" работать без ошибки - PullRequest
2 голосов
/ 05 мая 2019

Я пытался использовать аутентификацию пользователя, но каждый раз, когда я ее использую, я получаю ошибку типа, сообщающую мне, что объект 'bool' не вызывается. Я не могу пройти через это.

 if request.user.is_authenticated():
        print(user)
    else:
        return redirect("/login")
    return render(request, 'home.html', context)

Ответы [ 2 ]

2 голосов
/ 05 мая 2019

В более новых версиях Django is_authenticated становится атрибутом вместо функции .

Так что используйте request.user.is_authenticated (без парантеза "()")

#Code snippet
<b>if request.user.is_authenticated: # change is here <<<<<<<</b>
        print(user)
    else:
        return redirect("/login")
    return render(request, 'h/code>
0 голосов
/ 05 мая 2019

Когда вы получаете сообщение об ошибке x is not callable, обычно это происходит потому, что вы пытаетесь вызвать что-то, что не является функцией.Например,

myVar = True
myVar()

вернет ту же ошибку, что и выше.

В вашем случае request.user.is_authenticated() необходимо заменить на request.user.is_authenticated (без скобок), поскольку request.user.is_authenticated является логическим значением, а не функцией.

Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...