Я знаю, що це запитували деякий час тому, але я знайшов це, намагаючись це зрозуміти сам.
Виявляється, якщо ви переходите many=True
під час створення екземпляра класу серіалізатора для моделі, він може приймати кілька об'єктів.
Про це йдеться тут у документах django rest framework
Для мого випадку мій погляд виглядав так:
class ThingViewSet(viewsets.ModelViewSet):
"""This view provides list, detail, create, retrieve, update
and destroy actions for Things."""
model = Thing
serializer_class = ThingSerializer
Я насправді не хотів писати навантаження шаблону, щоб просто мати безпосередній контроль над створенням екземпляра серіалізатора та передачі many=True
, тому в своєму класі серіалізатора я замінюю __init__
замість цього:
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', )
Розміщення даних на URL-адресі списку для цього подання у форматі:
[
{'loads':'foo','of':'bar','fields':'buzz'},
{'loads':'fizz','of':'bazz','fields':'errrrm'}
]
Створив два ресурси з цими деталями. Що було приємно.