Multipart Parser In Django рамки для отдыха - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь загрузить изображение, используя django rest framework.Но у меня была проблема с этим, когда я использую форму почтальона, она успешно загружает изображение, но когда я пытаюсь ввести json в качестве строки в почтальоне, он возвращает мне эту ошибку.

"Представленные данные не были файлом. Проверьте тип кодировки в форме. "

здесь мой код:

serializer.py

class UserImageCreateSerializer(serializers.HyperlinkedModelSerializer):
    user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())

    class Meta:
        model = UserImages
        fields = ('user', 'image',)

view.py

class UserImageAPICreateView(ListCreateAPIView):
    queryset = UserImage.objects.all()
    serializer_class = UserImageCreateSerializer
    permission_classes = [AllowAny, AllowAnonymous]

мой запрос:

{
"Пользователь": 79,
"image": "/path/to/image.jpg"}

примечание: когда я использую форму почтальона, она успешно загружена, и когда используется HTML-форма django rest framework, она тоже работает

Я не знаю, какую ошибку я совершил.

Итак, у любого есть решение, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 18 октября 2018

вы не можете выгрузить файл изображения, просто указав путь к файлу в ваших данных загрузки json следующим образом:

{
"image": "/path/to/image.jpg"
}

Если вы отправите как этот, django будет обрабатывать данные изображения какобычная строка, а не файл

Вот почему вы продолжаете получать эту ошибку

"The submitted data was not a file. Check the encoding type on the form."

вам необходимо отправить данные изображения, а не путь к изображению.

здесь запрос Pythonпример загрузки изображения https://stackoverflow.com/a/45611449/2679465

...