Ich bin ziemlich neu und Django Rest Framework und ich habe einige Fragen bezüglich Berechtigungen.Berechtigungen Überprüfung in Serializer, Django Rest Framework,
So habe ich einen Benutzer, der ein Mitglied der Organisation und Mitglied einer Gruppe ist. Können sagen, wir haben ein Modell:
class SomeModel:
organization = models.ForeignKey(Organization)
name = models.CharField()
Benutzer kann nur create
/update
SomeModel
für seine eigene Organisation und wenn er eine Gruppe von „Koordinatoren“ ist er kann auch create
/update
für jede Organisation.
Derzeit ist mein Ansatz, diese Bedingungen in Serializer zu überprüfen, in .create()
und .update()
Methoden, da die Daten bereits validiert sind und ich PermissionDenied
Fehler dort anhöre. Aber es fühlt sich so an, als wäre das nicht der "richtige Weg". Ich habe versucht, benutzerdefinierte Berechtigungsklassen zu erstellen, aber dann werden die Daten nicht überprüft, da Berechtigungsklassen vor den Serialisierern überprüft werden. Haben Sie Vorschläge, wie soll ich das angehen?
Sorry für schlecht Englisch, es ist nicht meine Muttersprache. Danke!
EDIT: Beispiel: anfordern Daten sind so etwas wie:
payload = {'organization': 1, 'name': 'Name'}
Also, wenn ein Benutzer von Organisation 1 oder er ist ein Koordinator Zugang gewährt werden soll und SomeModel
soll
Warum möchten Sie bei Verwendung benutzerdefinierter Berechtigungsklassen weitere Daten validieren, wenn ein Benutzer keine Berechtigung zum Erstellen/Aktualisieren hat? –
Ich muss überprüfen, ob die Organisation in dem Modell, das gerade erstellt wird, existiert. –
Ich habe ein Beispiel hinzugefügt, das mir helfen könnte, mein Problem zu verstehen ... –