def chcke(maker=0)
def check_login(func):
@wraps(func)
def jurisdiction(request, *args, **kwargs):
if maker==0:
pass
else:
pass
return jurisdiction
return check_login
我有上面一种装饰器,需要用它来装饰下面的类中的get函数,请问该如何实现
class login(View):
def get(request,*args,**kwargs):
pass
return None
def post(request,*args,**kwargs):
pass
return None
结题了,自己做出来了
之前的装饰器少了个返回函数,添加了一个return func(self, request, *args, **kwargs)
def require_role(role=None):
def _deco(func):
@wraps(func)
def __deco(self, request, *args, **kwargs):
super_number = request.super_number
if super_number:
if role == super_number:
return func(self, request, *args, **kwargs)
else:
pass
else:
pass
return __deco
return _deco
函数调用:
class login(View):
@require_role((lambda:role.objects.get(role='login').role)())
def get(request,*args,**kwargs):
pass
return None
def post(request,*args,**kwargs):
pass
return None
@chcke
def get(request,*args,**kwargs):