Я использовал какое-то пользовательское промежуточное ПО для проверки аутентификации пользователей.Это работало замечательно, но я не хочу запускать это промежуточное ПО на каждом URL.
Предложения указывают на использование @decorator_from_middleware
перед каждым представлением, для которого вы хотите запустить промежуточное ПО, это было бы идеально.Некоторые из моих представлений должны быть глобальными, другие за аутентификацией.
Я не могу импортировать промежуточное программное обеспечение для вызова его в файле представлений.
Мои views.py:
from myapp.middleware import *
@decorator_from_middleware(AuthCheckMiddleware)
def index(request):
return render(request, "index.html")
My myapp.middleware.authCheck.py:
class AuthCheckMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
#CHECK AUTH HERE
response = self.get_response(request)
return response
def process_exception(self, request, exception):
return None
Я получаю ошибку:
File "/vagrant/myapp/django-project/isadmin/web/views.py", line 93, in <module>
@decorator_from_middleware(AuthCheckMiddleware)
NameError: name 'AuthCheckMiddleware' is not defined