1) Я хотел бы создать несколько экземпляров модели с одним вызовом API, например, здесь: How do I create multiple model instances with Django Rest Framework? Я пробовал решение, указанное в ссылке, без успеха.Создание экземпляров нескольких моделей в DRF3
Я пытаюсь загрузить несколько файлов в один вызов API. Результат: файлы загружаются (только один раз, когда я перезаписал perform_create), но создается только один экземпляр (если я отправляю два файла, только последний создается как экземпляр).
Мой код:
class FileUploadSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
many = kwargs.pop('many', True)
super(FileUploadSerializer, self).__init__(many=many, *args, **kwargs)
class Meta:
model = FileUpload
read_only_fields = ('created', 'datafile', 'owner')
class FileUploadViewSet(viewsets.ModelViewSet):
queryset = FileUpload.objects.all()
serializer_class = FileUploadSerializer
parser_classes = (MultiPartParser, FormParser,)
def perform_create(self, serializer):
file_list = self.request.data.getlist('file')
for item in file_list:
serializer.save(file=item)
Я на правильном пути? В документации http://www.django-rest-framework.org/api-guide/serializers/#dealing-with-multiple-objects упоминается: «Чтобы сериализовать запрос или список объектов вместо экземпляра одного объекта, вы должны передать флаг many = True при создании экземпляра сериализатора. Затем вы можете передать запрос или список объектов, которые будут сериализованы». => Должно быть возможно ...
2) Разве лучше использовать django-rest-framework-bulk для этого? https://github.com/miki725/django-rest-framework-bulk
Возможный дубликат [Как размещать/помещать данные json в ListSerializer] (http://stackoverflow.com/questions/27869841/how-to-post-put-json-data-to-listserializer) –