Kanonische Methode zum Erstellen von Massen in django-rest-framework 3.x?

8

In 2.x hatten wir einen Serializer, der aussah wie:

%Vor%

Dies war effektiv in der Lage, Bulk-Erstellungen zu bearbeiten (Übergabe eines list als Hauptteil einer JSON-Post-Anfrage). In 3.x ist dieser Endpunkt unterbrochen. Ich habe versucht, etwas zu implementieren, ähnlich wie die Dokumentation zu DRF

%Vor%

Und während dies für eine einzige Erstellungsanforderung funktioniert, erhalte ich den Fehler, wenn ich versuche, eine Liste zu übergeben:

%Vor%

Ich habe einige Hacks gesehen, bei denen __init__ übergeordnet ist, aber es scheint, dass mit der Erstellung der Klasse ListSerializer in 3.x ein saubererer Weg dafür geschaffen werden muss. Danke im Voraus.

    
Quentin Donnellan 12.01.2015, 15:02
quelle

1 Antwort

0

Sie zeigen nicht, wie Ihr Code eine FooSerializer -Instanz erstellt. Die Django REST Framework 3-Dokumentation lautet:

  

Wenn ein Serializer instanziiert wird und many=True übergeben wird, wird eine ListSerializer -Instanz erstellt. Die Serializer-Klasse wird dann zum Kind des übergeordneten ListSerializer .

Es scheint also, dass Ihr Code erkennen sollte, ob die Daten eine Instanz oder viele enthalten, und:

  • serializer = FooSerializer() , um eine Instanz oder
  • zu behandeln
  • serializer = FooSerializer(many=True) , um eine Liste mit vielen Instanzen zu verwalten.

Explizit ist besser als implizit: -)

    
bignose 08.06.2017 04:04
quelle