如何给CBV添加装饰器

给CBV添加装饰器

from django.utils.decorators import method_decorator

# dispatch的便捷写法
@method_decorator(cookie,name='dispatch')
class CBVtest(views.View):
    
    # 给dispatch方法添加装饰器,那么下面所有的get,post都会添加
    @method_decorator(cookie)
    def dispatch(self, request, *args, **kwargs):
        return super(CBVtest,self).dispatch(request,*args,**kwargs)
    
    #给一个方法单独加
    @method_decorator(cookie)
    def get(self,request):
     u=request.get)signed_cookie('username',salt='user',default=None)    
      return render(request,'houtai.html',{'user':u})

需要导入django.utils.decorators 中的method_decorator
第一种方式,可以直接在类上添加,@method_decorator,name为dispatch
第二种方式,直接重写dispatch方法,在这个方法上面添加
第三种方式,在单独的函数上添加

猜你喜欢

转载自www.cnblogs.com/zty1304368100/p/10970490.html