DRF權(quán)限

還是通過源碼進行查看

dispatch -----> self.initial(request, *args, **kwargs) -----> 查看initial方法 ----> self.check_permissions(request) ----> 查看check_permission()方法 ---->

    def check_permissions(self, request):
        """
        Check if the request should be permitted.
        Raises an appropriate exception if the request is not permitted.
        """
        for permission in self.get_permissions():
            if not permission.has_permission(request, self):
                self.permission_denied(
                    request, message=getattr(permission, 'message', None)
                )

和之前的用戶認證一毛一樣木张,這個靜態(tài)列表可以局部配置代芜,也可以全局配置环凿,調(diào)用了權(quán)限認證類的has_permission方法呵曹,然后返回了權(quán)限類中的屬性message反射的方式寸五。

  • 我們在utils包中創(chuàng)建權(quán)限認證類啡专,重寫has_permission方法冲杀,定義message靜態(tài)字段怜俐,函數(shù)返回true或者false身堡。
  • 然后看怎么在全局中配置,也就是找到他的鍵拍鲤,查看get_permission,找到了permission_classes = api_settings.DEFAULT_PERMISSION_CLASSES,所以我們在settings中定義的REST_FRAMEWORK中贴谎,添加新的鍵值對,鍵為DEFAULT_PERMISSION_CLASSES,值為utils包中權(quán)限認證類的路徑季稳。

權(quán)限認證類也有內(nèi)置的類擅这,

from restframework.permissions import Basepermission,自定義的權(quán)限認證類繼承這個類。

代碼實現(xiàn)

utils.permission.py.Mypermission 權(quán)限類

from rest_framework.permissions import BasePermission


class Mypermission(BasePermission):
    '''用戶權(quán)限類'''
    def has_permission(self, request, view):
        if request.user.user_type != 'SVIP':  # 具體權(quán)限邏輯
            return False
        return True

views.py 視圖函數(shù)

from utils.permission import Mypermission
class OrderView(APIView):
    # authentication_classes = [Authentication,]  # 局部引用
    permission_classes = [Mypermission,]

    def get(self,request):

        ret = {'code':10000,'msg':None}
        try:
            pass # 具體視圖函數(shù)邏輯
        except Exception as e:
            pass  # 拋出異常
        return JsonResponse(ret)

settings全局使用

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES':['app1.utils.permission.Myspermission'],
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末景鼠,一起剝皮案震驚了整個濱河市仲翎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铛漓,老刑警劉巖溯香,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浓恶,居然都是意外死亡玫坛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門包晰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來湿镀,“玉大人炕吸,你說我怎么就攤上這事∶愠眨” “怎么了赫模?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蒸矛。 經(jīng)常有香客問我嘴瓤,道長,這世上最難降的妖魔是什么莉钙? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任廓脆,我火速辦了婚禮,結(jié)果婚禮上磁玉,老公的妹妹穿的比我還像新娘停忿。我一直安慰自己,他們只是感情好蚊伞,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布席赂。 她就那樣靜靜地躺著,像睡著了一般时迫。 火紅的嫁衣襯著肌膚如雪颅停。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天掠拳,我揣著相機與錄音癞揉,去河邊找鬼。 笑死溺欧,一個胖子當著我的面吹牛喊熟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姐刁,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼芥牌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了聂使?” 一聲冷哼從身側(cè)響起壁拉,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柏靶,沒想到半個月后弃理,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡宿礁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年案铺,在試婚紗的時候發(fā)現(xiàn)自己被綠了蔬芥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梆靖。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡控汉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出返吻,到底是詐尸還是另有隱情姑子,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布测僵,位于F島的核電站街佑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捍靠。R本人自食惡果不足惜沐旨,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望榨婆。 院中可真熱鬧磁携,春花似錦、人聲如沸良风。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烟央。三九已至统诺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疑俭,已是汗流浹背粮呢。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钞艇,地道東北人鬼贱。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像香璃,于是被迫代替她去往敵國和親这难。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容