Anstatt eine ValidationError
zu erhöhen, werde ich nur eine ParseError oder eine ParseError auslösen ein weiterer benutzerdefinierter Fehler, der zur Fehlerbeschreibung passt:
Sie können es mit Berechtigungen lösen:
%Vor%Fügen Sie dann zu den Berechtigungs-Klassen Ihrer Ansicht
hinzu %Vor%validate wird nicht beim Löschen aufgerufen.
Hmmm. Richtig ja. In diesem Fall würde ich die Exception in pre_delete
genau wie Sie auslösen und delete
überschreiben, um den Aufruf destroy
in einen try
-Block umzubrechen.
Wenn Sie except ValidationError as e
verwenden, können Sie damit die gewünschte Antwort von Hand erstellen ...
... oder so.
Sie könnten self._errors
wahrscheinlich auffüllen und das vorhandene Fehlerreaktionsverhalten nutzen, aber ich kann mir nicht vorstellen, wie ich das off-hand tun soll.
Ich hoffe, das hilft.
Überprüfen Sie das Dokument auf Validierung des Objektniveaus .
Implementieren Sie validate
, um zu überprüfen, ob die Umfrage festgelegt wurde:
Wenn attrs
nicht das ist, was Sie hier brauchen, müssen Sie etwas Cleverer machen - aber es wird Ihren Fehler in der Validierungsphase bekommen.
Ich hoffe, das hilft.
Die Lösung, die ich gefunden habe, bestand darin, die Zerstörungsmethode auf der API zu überschreiben.
%Vor%Für mich ist es viel sinnvoller, die destroy -Methode zu validieren, anstatt die Objektberechtigungsprüfung als avances123 zu überprüfen, da die Berechtigung nur nach Berechtigungsmerkmalen sucht und keine Nachrichten zurückgibt im Zusammenhang mit der Validierung.
Ich hoffe, das hilft;)
Tags und Links django validation django-rest-framework