Ich weiß, dass dies vor einiger Zeit gefragt wurde, aber ich habe es gefunden, als ich versucht habe, dies selbst herauszufinden.
Wenn Sie many=True
beim Instanziieren der Serializer-Klasse für ein Modell übergeben, können mehrere Objekte akzeptiert werden.
Dies wird hier in den Django Rest Framework-Dokumenten erwähnt
Für meinen Fall sah meine Ansicht folgendermaßen aus:
class ThingViewSet(viewsets.ModelViewSet):
"""This view provides list, detail, create, retrieve, update
and destroy actions for Things."""
model = Thing
serializer_class = ThingSerializer
Ich wollte nicht wirklich eine Ladung Boilerplate schreiben, um die Instanziierung des Serializers direkt zu steuern und zu übergeben many=True
, also überschreibe ich in meiner Serializer-Klasse __init__
stattdessen Folgendes :
class ThingSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
many = kwargs.pop('many', True)
super(ThingSerializer, self).__init__(many=many, *args, **kwargs)
class Meta:
model = Thing
fields = ('loads', 'of', 'fields', )
Senden von Daten an die Listen-URL für diese Ansicht im folgenden Format:
[
{'loads':'foo','of':'bar','fields':'buzz'},
{'loads':'fizz','of':'bazz','fields':'errrrm'}
]
Erstellt zwei Ressourcen mit diesen Details. Welches war schön.