權限問題3d
1.models.pyblog
2.用戶類型:繼承
3.views.py: get
假設訂單相關業務(只有SVIP用戶有權限)源碼
假設用戶信息相關業務(只有普通用戶、VIP有權限)io
4.運行結果:配置
基本使用model
以上的權限代碼封裝到一個類中,之後各個視圖的get請求直接調用便可。不用每一個類都寫一遍權限。 權限
自定義權限類: 須要找到has_permission方法請求
0.看源碼:
1.
2.
3.複製源碼has_permission方法
4.繼續定義權限類:has_permission方法返回True表示有權訪問。
5.定義好了權限類,局部使用。
局部權限
6.運行結果
7.再定義一個權限,除SVIP之外,其餘用戶都能訪問。
8.將全權都放到另外一個單獨的文件中。
而後視圖文件須要則引入。
views.py應用便可
以上的單視圖應用。全局使用怎麼辦呢?
全局權限
1.權限源碼流程:
仍是到複製源碼has_permission方法這一步驟
局部配置
permission.py
全局配置 settings.py
繼續看源碼:
每個權限都有該方法 has_permission
若是返回Fasle,則執行報錯,拋出異常。
拋出異常
默認英文報錯
運行結果
如何改爲中文報錯信息呢?
運行結果
內置權限
1.內置權限源碼流程
2.爲了讓咱們的權限更正規,必須繼承該內置權限。