Кто-нибудь может подсказать, как загрузить несколько файлов с помощью Restangular, я использую Django Rest Framework в качестве бэкенда.
На моей веб-странице есть несколько вопросов и ответов на них, и во всех полях есть кнопка просмотра, которая выбирает файлы, изображения.
Я поместил вложение и ответ в $scope.question.attachment, поэтому, когда я делаю вызов API, он берет эти данные из Frontend и отправляет в backend, а также я не использую элемент и, к вашему сведению, ответы правильно отправляются в backend и сохраняются в базе данных. (теперь вы думаете, как ответы попадают в бэкенд, а не вложения, потому что я установил вложения read_only = true)
class ServiceProjectAnswerSerializer(serializers.ModelSerializer):
attachement = AnswerAttachmentsSerializer(read_only=True, many=True)
def create(self, validated_data):
instance = ServiceProjectAnswer(**validated_data)
if isinstance(self._kwargs["data"], dict):
instance.save()
return instance
class Meta:
model = ServiceProjectAnswer
fields = ('project', 'question', 'answer', 'attachement')
list_serializer_class = BulkCreateListSerializer
Моя проблема в том, как я могу выбрать несколько файлов и как сделать метод прямоугольного поста для файлов (вместе с файлами я также отправляю ответы и id вопроса), поэтому, пожалуйста, имейте это в виду.
Как выбрать несколько файлов? Как пересылать файлы и данные одновременно? с помощью этого метода
(Если вы хотите больше информации, пожалуйста, скажите мне в комментариях, и если вы не понимаете, о чем я говорю, также, пожалуйста, скажите мне в комментариях, я проясню это)
Restangular.one('api/url/to/endpoint')
.withHttpConfig({transformRequest: angular.identity})
.customPOST(fd, '', undefined, {'Content-Type': undefined})
<div class="col-md-6">
<div class="input-grp">
<label name="">
Browse
<span class="btn btn-primary">
<input
type="file"
name="attachment"
ng-model="question.attachment"
accept=".jpeg, .jpg, .png, .pdf, .doc, .docx, .xls, .xlsx, .txt"
upload-files
/>
</span>
</label>
<input class="form-control" readonly="" type="text" />
</div>
</div>
<div class="col-md-6">
<input
type="text"
class="form-control"
name="answer"
ng-model="question.answer"
placeholder=""
/>
</div>