Come applicare la classe di autorizzazione a un metodo particolare nelle viste basate sulla classe in Django-Rest Framework?
-
21-12-2019 - |
Domanda
Voglio applicare il permesso solo per il metodo "messo" non per "post"
class Signup(APIView):
def post(self, request, format=None):
something...something
@authentication_classes((ExpiringTokenAuthentication,))
@permission_classes((IsAuthenticated,))
def put(self, request, format=None):
something...something
. Soluzione
Controllare il metodo HTTP sul metodo has_permission
della classe di autorizzazione e applicare i tuoi assegni se è stato messo:
class ExpiringTokenAuthentication(permissions.BasePermission):
def has_permission(self, request, view):
if request.method == 'PUT':
# do it here
class Signup(APIView):
permission_classes = (BlacklistPermission,)
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow