Python requests image upload fail to drf
import json
import requests
user_f = open('categories.json',)
users = json.load(user_f)
media_api = 'http://127.0.0.1:8000/api/categories/'
files=[
('category_image', ("Traditional-Art.png", open("Traditional-Art.png",'rb'),'image/jpeg'))
]
json = {
"category_name": "cat",
"category_description": "desc",
"user": 16
}
headers = {
"Accept": 'application/json, text/plain, */*',
"enctype":"multipart/form-data"
}
response = requests.request("POST", media_api, headers=headers, data=json, files=files)
print(response.json())
Здесь я пытаюсь загрузить изображение в django rest-framework и получаю следующую ошибку
`{u'category_image': [u'Upload a valid image. The file you uploaded was either not an image or a corrupted image.']}`
Это работает, когда изображение имеет формат jpg, но не работает в png. Я что-то упустил или мне нужно что-то изменить?
Пожалуйста, посмотрите
То, что вы сделали неправильно, либо вы пытаетесь отправить данные как json или как форму, сделайте что-то вроде этого, это может помочь вам.
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
multipart_data = MultipartEncoder(
fields={
# a file upload field
'file': ('file.zip', open('file.zip', 'rb'), 'text/plain')
# plain text fields
'field0': 'value0',
'field1': 'value1',
}
)
response = requests.post('http://httpbin.org/post',
data=multipart_data,
headers={'Content-Type': multipart_data.content_type})