drf 許可權元件

2022-08-22 10:06:09 字數 1522 閱讀 3913

目錄許可權就是某些功能只對特定的使用者開放,比如django中建立使用者可分為超級使用者和普通使用者,此時超級使用者就有許可權進入後台管理系統,而普通使用者就沒有許可權,這是怎麼做到的呢?

這就是許可權元件的作用。

from rest_framework.permissions import basepermission

class userpermission(basepermission):

"""自定義許可權類:繼承basepermission,重寫has_permission方法"""

message = '不是超級使用者,檢視不了'

def has_permission(self, request, view):

# user_type = request.user.get_user_type_display()

# if user_type == '超級使用者':

return httpresponse('post')

區域性使用只需要在檢視類裡加入:

permission_classes = [userpermission,]
# 在settings.py中進行設定

rest_framework=

# permission.py

def check_permissions(self, request):

for permission in self.get_permissions():

if not permission.has_permission(request, self):

self.permission_denied(

request, message=getattr(permission, 'message', none)

)

# self.get_permissions()

def get_permissions(self):

return [permission() for permission in self.permission_classes]

許可權類使用順序:先用檢視類中的許可權類,再用settings裡配置的許可權類,最後用預設的許可權類

DRF過濾元件

from rest framework import pagination 基礎分頁 class pagenumberpagination pagination.pagenumberpagination 預設一頁顯示的條數 page size 2 查詢頁面的關鍵字 page query param ...

drf過濾元件

主要包含分頁,搜尋,排序,分類,區間 系統基礎分頁器from rest framework import pagination class freecourselistviewset listmodelmixin,genericviewset queryset models.course.objec...

drf 分頁元件

目錄可以達到檢視第幾頁以及每一頁顯示幾條的效果 from rest framework.pagination import pagenumberpagination 一 基本使用 url url 無效 class pager apiview def get self,request,args,kwa...