aufgerufen Ich habe ein Viewset SampleViewSet für API POST
/api/samples/sample_id/check
. Ich habe dafür eine Berechtigung auf Objektebene definiert.has_object_permission ist nicht für benutzerdefinierte API
class SamplePermission(BasePermission):
def has_object_permission(self, request, view, obj):
return True
class SampleViewSet(viewsets.ModelViewSet):
permission_classes = (SamplePermission,)
@detail_route(methods=['post'])
def check(self, request, pk=None):
if pk:
print "check"
Die Funktion has_object_permission nicht aufgerufen wurden, wenn ich rufe die API POST
/api/samples/check
. Was könnte der Grund sein?
Edited die Frage nach Ihren Kommentar. Die Funktion wird für GET api aufgerufen. Es funktioniert nicht für eine benutzerdefinierte API. – linuxfreak
@linuxfreak Antwort aktualisiert –
Ich habe Berechtigungen direkt in detail_route hinzugefügt. Ich habe sowohl has_permission als auch has_object_permission in Sample Permission definiert. 'has_permission' wird aufgerufen, während 'has_object_permission' nicht aufgerufen wird. – linuxfreak