мой пользовательский интерфейс angular 7 и бэкэнд Django. я хочу загрузить свое изображение в FileField
в django бэкэнд:
это мой код API:
class UploadImage(APIView):
parser_classes = (FileUploadParser,)
renderer_classes = [JPEGRenderer]
def put(self, request, filename, format=None):
try:
_u = request.user
users = UserProfiles.objects.filter(user=_u)
for g in users:
g.picture = request.data['file']
g.save()
return response.Response({'status': 0, 'msg': 'upload successfully!'}, status=HTTP_200_OK)
except Exception as e:
print(e)
return response.Response({}, status=HTTP_400_BAD_REQUEST)
и это мой JPEGRenderer
:
from rest_framework.renderers import BaseRenderer
class JPEGRenderer(BaseRenderer):
media_type = 'image/jpeg'
format = 'jpg'
charset = None
render_style = 'binary'
def render(self, data, media_type=None, renderer_context=None):
return data
когда я отправляю свое изображение в бэкэнд, я принимаю 406 acceptable http error
мой запрос:
Request URL:api/user/upload_img/IMG_20181207_160953.jpg
Request method:PUT
Remote address:127.0.0.1:8000
Status code:
406
Version:HTTP/1.1
Referrer Policy:no-referrer-when-downgrade
заголовки запроса:
Host: localhost:8000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost:4200/
Authorization: Bearer eyJ0eXAiOiJFp
Content-type: image/jpeg
enctype: multipart/form-data
Content-Length: 255159
Origin: http://localhost:4200
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
и мое изображение находится в полезная нагрузка запроса