无法访问decorator语言 - django 4.0.4中的请求头文件



使用基于类的视图。我有一个装饰器,检索头进行验证。然而,我得到这个错误访问请求头在装饰器:

装饰器异常'DetailsView'对象没有属性'headers'

我必须强调,在view函数中访问请求头是可以的。

视图功能:

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():'并将装饰函数更改为check_access。并移动'self'参数

in View Function

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

引用的站点:Decorator

最新更新