我有如下一個views.py,Django的休息權限允許雙方IsAdmin和自定義權限
from webapi.permissions import IsOwner
class MemberDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = members.objects.all()
serializer_class = MemberSerializer
permission_classes = (permissions.IsAdminUser,IsOwner)
而下面是檢查自定義權限,如果用戶是在奧爾對象webapi.permissions的,
class IsOwner(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
return obj.owner == request.user
現在的問題是檢查他是否是管理員用戶並給予更新/刪除權限但是如果擁有者是用戶,它實際上應該授權編輯他的數據,但是在這種情況下它是失敗的。
在見到這個問題:「Django Rest Framework won't let me have more than one permission」我試過如下也是它仍然沒有當我使用或者如果我使用,或與錯誤在運行時爲「‘條件’未能正常工作,
class MemberDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = members.objects.all()
serializer_class = MemberSerializer
permission_classes = (Or(permissions.IsAdminUser,IsOwner))
對象不是可迭代」
這可以更好地工作,我刪除了Or並使用了自定義權限。 –