Das funktioniert definitiv:
%Vor%Verschachtelte und aufgelistete Serializer
Dies funktioniert nicht, wenn Sie einen solchen Serializer als Feld in einem anderen Serializer verwenden. In diesem Fall hat der untergeordnete Serializer keinen Zugriff auf die ursprünglichen Daten und Sie erhalten eine Ausnahme.
Dasselbe gilt für ListSerializer
(oder many=True
), da der untergeordnete Serializer des Listenserializers die einzelnen initial_data
-Elemente nicht erhält (es gibt einen GitHub Ticket dafür).
In diesem Fall ist die etwas weniger saubere Lösung, die in beiden Fällen funktioniert:
%Vor% s.data
enthält nicht bar
, also was ist der Anwendungsfall, wo es wichtig ist?
Nachdem ich mir die Dokumente angeschaut habe, habe ich keine native Lösung gesehen. Sie könnten .validate()
überschreiben, um eine Überprüfung durchzuführen und ValidationErrors
auf diese Weise zu erhöhen. Ich habe das nicht mit partial=True
getestet, also solltest du das überprüfen, wenn du es benutzt.
Tags und Links python django api rest django-rest-framework