Невозможно получить доступ к заголовкам запроса в декораторе - django 4.0.4

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

Функция просмотра:

class DetailsView(View):

    @check_access
    def get(self, request):     
        res = {
            'status': 200,
            'response': 'heeaders test.',
            'test': 'okay'
        }
        return HttpResponse(JsonResponse(res, safe=False), content_type='text/json')

Декоратор:

def check_access():
    def decorator(view_function):
        def wrap(request, *args, **kwargs):
            try:
                print("headers", request.headers)
                return view_function(request, *args, **kwargs) 

            except Exception as e:
                return HttpResponse('Unauthorized', status=401)

        return wrap

    return decorator

Будьте добры, помогите. Заранее спасибо.

Удалите 'def check_access():' и измените функцию decorate на check_access. И переместите аргумент 'self'.

в функции просмотра

class DetailsView(View):
    @check_access
    def get(request): # Delete Self     
        ....

в декораторе

def check_access(view_function):
    def wrap(self, request, *args, **kwargs): # add self
        ...
    return wrap

Ссылка на сайт : Декоратор

Вернуться на верх