作成アクション(投稿)のパーミッションを設定したいと思います。そして私はそれをするために熱い知らない。rest_frameworkで作成アクションの権限を設定する方法
これは私のコードです:ビューでpermissions.py
class IsAdmin(permissions.BasePermission):
def has_object_permission(self, request, view, category):
if request.user.role == "admin":
return request.user.role == "admin"
return False
で
クラスCategoryViewSet(viewsets.ModelViewSet):
queryset = Category.objects.all()
serializer_class = CategorySerializer
def get_permissions(self):
if self.request.method in permissions.SAFE_METHODS:
return (permissions.DjangoModelPermissions(),)
return (permissions.IsAuthenticated(), IsAdmin(),)
あなたが見ることができるなら、それはカスタム管理者のために定義されているstandarです:request.user.role == "admin" –
したがって、読み取り専用のチェックを自分の許可クラス(そして 'IsAdminOrReadOnly'のような名前に変更してください)、viewset.permission_classesにそのクラスを使用してください。 – wim
すでに解決済みです... has_permissionメソッドの' has_object_permission(self、request、view、category) (self、request、view) 'とそれは動作する必要があります...;) –