• Django drf 免登陆设置login_exempt


    一、为类视图添加装饰器login_exempt

    在进入dispatch方法之前添加装饰器:即在view方法之后, 在调用dispatch方法之前添加装饰器.

    1、因为login_exempt是为函数准备的装饰器,所以类视图无法直接使用,需要使用method_decorator将其转换为适合类视图使用的装饰器。name='dispatch'代表:为视图中的所有请求方法添加装饰器

    @method_decorator(login_exempt, name='dispatch')

     2、将装饰器放在dispatch方法之上,仍然表示为视图中的所有请求方法添加装饰器

    @method_decorator(login_exempt)
        def dispatch(self, request, *args, **kwargs):
            return super(TicketAPIModelViewSet, self).dispatch(request, *args, **kwargs)

    二、重写as_view方法:

    as_view()的执行结果加装饰器, 由于as_view()方法返回的是一个view函数,在调用view函数之前进行装饰, 就相当于给每一个视图添加了装饰器, 因为它是一个视图的入口, 所以每次进入view函数之前都会调用一次!
    @classmethod
        def as_view(cls, actions=None, **initkwargs):
            # 登录豁免
            view = super(TicketAPIModelViewSet, cls).as_view(actions=actions, **initkwargs)
            return login_exempt(view)

  • 相关阅读:
    PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重
    文件系统添加链接
    HTML中插入视频
    magento模块的建立
    数组函数
    字符串函数
    阿里服务器用户的添加
    ViewChild
    GitHub 图片加载不出来怎么办
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/wangyingblock/p/11975235.html
Copyright © 2020-2023  润新知