Почему объект 'bool' не является вызываемым
вот мой файл промежуточного ПО в django
import re
from django.conf import settings
from django.shortcuts import redirect
EXEMPT_URL = [re.compile(settings.LOGIN_URL.lstrip('/'))]
if hasattr(settings, 'LOGIN_EXEMPT_URLS'):
EXEMPT_URL += [re.compile(url)for url in settings.LOGIN_EXEMPT_URLS]
class LoginRequiredMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self,request):
response = self.get_response(request)
return response
def process_view(self,request, view_func, view_args, view_kwargs):
assert hasattr(request,'user')
path = request.path_info
print(path)
if not request.user.is_authenticated():
if not any (url.match(path) for url in EXEMPT_URL):
return redirect(settings.LOGIN_URL)
url_is_exempt = any (url.match(path) for url in EXEMPT_URL)
if request.user.is_authenticated() and url_is_exempt:
return redirect(settings.LOGIN_REDIRECT_URL)
elif request.user.is_authenticated() or url_is_exempt:
return None
else:
return redirect(settings.LOGIN_URL)
вот моя ошибка : if not request.user.is_authenticated(): TypeError: 'bool' object is not callable пожалуйста, кто-нибудь помогите мне с этим
Просто измениться
if not request.user.is_authenticated():
to
if not request.user.is_authenticated:
Как упоминалось в комментарии выше, is_authenticated
- это атрибут, а не функция. Поэтому вы не можете вызвать ее.