Wie wende ich eine Berechtigungsklasse auf eine bestimmte Methode in klassenbasierten Ansichten im Django-Rest Framework an?
-
21-12-2019 - |
Frage
Ich möchte die Berechtigung nur für die Methode „PUT“ anwenden, nicht für die Methode „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
Lösung
Überprüfen Sie die HTTP-Methode für Ihre Berechtigungsklasse has_permission
Methode und wenden Sie Ihre Prüfungen an, wenn es PUT war:
class ExpiringTokenAuthentication(permissions.BasePermission):
def has_permission(self, request, view):
if request.method == 'PUT':
# do it here
class Signup(APIView):
permission_classes = (BlacklistPermission,)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow