drf 在viewsets中對象級別的權限控制方法為什么不執行?
class?IsLeaderAndOwnerPermission(permissions.BasePermission): ???def?has_object_permission(self,?request,?view,?obj): ??????print(request.user) ??????#?if?request.method?in?permissions.SAFE_METHODS: ??????#??return?True ??????'''判斷是否是管理者且管理自己及下屬''' ??????#?return?obj.user?==?request.user
只有has_permission(self,request,view)方法可以執行,但又怎么判斷操作的是自己所屬呢?
2020-12-08
請注意,通用視圖將檢查適當的對象級別權限,但是,如果您要編寫自己的自定義視圖,則需要確保自己檢查對象級別權限。您可以通過
self.check_object_permissions(request, obj)
在擁有對象實例后從視圖中進行調用來實現。APIException
如果任何對象級權限檢查失敗,則此調用將引發適當的調用,否則將簡單地返回。還要注意,通用視圖將僅檢查對象級權限以獲取檢索單個模型實例的視圖。如果需要列表視圖的對象級過濾,則需要單獨過濾查詢集。有關更多詳細信息,請參見過濾文檔。
我明白了,但過濾依然 不懂,付費課程可以學到嗎?