我正在使用DRF編寫API。我想給我的Modelviewsets中的每個視圖賦予不同的權限。我有兩個組(客戶和員工)。我已將它們篩選爲Isstaff和Iscustomer在permissions.py。基於Django rest框架組的基於個人視圖的權限
class Iscustomer(permissions.BasePermission):
def has_permission(self, request, view):
if request.user and request.user.groups.filter(name='customers'):
return True
return False
class Isstaff(permissions.BasePermission):
def has_permission(self, request, view):
if request.user and request.user.groups.filter(name='staff'):
return True
return False
我試圖用get_permissions
方法取代。 當我在self.permission_classes
中放置一個組時,它工作正常。
class cityviewset(viewsets.ModelViewSet):
queryset = city.objects.all()
serializer_class = citySerializer
def get_permissions(self):
if self.request.method == 'POST' or self.request.method == 'DELETE':
self.permission_classes = [Isstaff]
return super(cityviewset, self).get_permissions()
但是,當我嘗試在self.permission_classes
中放置多個組時,它失敗。
def get_permissions(self):
if self.request.method == 'POST' or self.request.method == 'DELETE':
self.permission_classes = [Isstaff,Iscustomer,]
return super(cityviewset, self).get_permissions()
這是什麼意思是失敗?有沒有任何錯誤信息? – zaidfazil
對不起。我的意思是,我被拒絕執行這些任務..它說:「你沒有執行此操作的權限。」 –