Django REST Framework Загрузить изображение: «Представленные данные не были файлом»Python

Программы на Python
Ответить
Anonymous
 Django REST Framework Загрузить изображение: «Представленные данные не были файлом»

Сообщение Anonymous »

Я склоняюсь к тому, как загружать файл в Django, и здесь я столкнусь с обязательностью, которая должна быть тривиальной проблемой, с ошибкой: < /p>


Представленные данные не были файлом. Проверьте тип кодирования в форме. < /P>
< /blockquote>

ниже приведен деталь. < /P>



Примечание: < /strong> Я также посмотрел на Framefide Django Rest Imagefield, и я попробовал < /p>

Код: Выделить всё

serializer = ImageSerializer(data=request.data, files=request.FILES)
но я получаю


TypeError: __init__() получено неожиданный аргумент ключевого слова «файлы»




У меня есть изображение модель, с которой я хотел бы взаимодействовать через структуру Django REST:

models.py

Код: Выделить всё

class Image(models.Model):
image = models.ImageField(upload_to='item_images')
owner = models.ForeignKey(
User, related_name='uploaded_item_images',
blank=False,
)
time_created = models.DateTimeField(auto_now_add=True)
serializers.py

Код: Выделить всё

class ImageSerializer(serializers.ModelSerializer):
image = serializers.ImageField(
max_length=None, use_url=True,
)

class Meta:
model = Image
fields = ("id", 'image', 'owner', 'time_created', )
< /code>

settings.py

'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser',
),
Передняя часть (используя Angularjs и Angular-Restmod или $ resource ) Отправить данные json с владельцем и изображение < /code> формы: < /p>

input: < /h1>

Код: Выделить всё

{"owner": 5, "image": "data:image/jpeg;base64,/9j/4QqdRXhpZgAATU0A..."}
< /code>

В бэкэнде request.data < /code> показывает < /p>

{u'owner': 5, u'image': u'data:image/jpeg;base64,/9j/4QqdRXhpZgAATU0AKgAAA..."}
Но затем ImageSerializer(data=request.data).errors показывает ошибку

Код: Выделить всё

ReturnDict([('image', [u'The submitted data was not a file. Check the encoding type on the form.'])])
< /code>

Интересно, что я должен сделать, чтобы исправить ошибку? < /p>



 edit: js part [/b] 

Связанный [b] Front End [/b] коды состоит из двух частей: угловой файл -dnd 
Директива (доступна здесь), чтобы оставить файл на страницу и Angular-Restmod , который предоставляет операции CRUD:

Код: Выделить всё




[i][/i]

Drap & drop your photo here


# A simple `Image` `model` to perform `POST`
$scope.image_resource = Image.$build();

$scope.upload = function() {
console.log("uploading");
$scope.image_resource.image = $scope.image;
$scope.image_resource.owner = Auth.get_profile().user_id;
return $scope.image_resource.$save();
};
< /code>





Обновление, касающееся проблемы: прямо сейчас я переключился на Использование Ng-file-Upload 
, которая отправляет данные изображения в правильном формате.

Подробнее здесь: https://stackoverflow.com/questions/280 ... not-a-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»