Я пытаюсь исключить промежуточное ПО из некоторых представлений в Django, и у меня возникла проблема.
Это класс промежуточного ПО
class JWTAuthorisation(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# before view
token = request.headers.get('x-auth-token')
if not token:
return HttpResponse("No access token provided", status=401)
response = self.get_response(request)
return response
Я использую этот @ для включения промежуточного ПО для просмотра
@decorator_from_middleware(JWTAuthorisation)
def register(request):
if request.method == "POST":
Это ошибка
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "E:\LoreProject\users\urls.py", line 3, in <module>
from users import views
File "E:\LoreProject\users\views.py", line 75, in <module>
@decorator_from_middleware(JWTAuthorisation)
File "E:\LoreProject\venv\lib\site-packages\django\utils\decorators.py", line 111, in decorator_from_middleware
return make_middleware_decorator(middleware_class)()
File "E:\LoreProject\venv\lib\site-packages\django\utils\decorators.py", line 116, in _make_decorator
middleware = middleware_class(*m_args, **m_kwargs)
TypeError: __init__() missing 1 required positional argument: 'get_response'
Обновление Я изменил свой класс на
class JWTAuthorisation(object):
def process_request(self,request):
print("hello")
return None
Я получаю это
File "E:\LoreProject\venv\lib\site-packages\django\core\wsgi.py", line 13, in get_wsgi_application
return WSGIHandler()
File "E:\LoreProject\venv\lib\site-packages\django\core\handlers\wsgi.py", line 127, in __init__
self.load_middleware()
File "E:\LoreProject\venv\lib\site-packages\django\core\handlers\base.py", line 37, in load_middleware
mw_instance = middleware(handler)
TypeError: object() takes no parameters