Django REST Swagger如何处理响应POST api(基于函数)

时间:2017-11-18 09:37:38

标签: python django rest swagger imagefield

我正在尝试接受使用我的基于Django REST函数的POST API发布的图像文件。这基于https://github.com/m-haziq/django-rest-swagger-docs

我收到此错误屏幕截图(https://imgur.com/a/ECq5y

Object of type 'TypeError' is not JSON serializable

这样做

face_image = request.data.get('face_image')

并且是将它保存到模型的正确步骤,是否会像这样

employee.face_image = face_image

以下是我定义API的方法

@api_view(['POST'])
def update_employee_image(request):
    # ----- YAML below for Swagger -----
    """
    description: This API deletes/uninstalls a device.
    parameters:
      - name: employee_id
        type: integer
        required: true
        location: form
      - name: face_image
        type: file
        required: true
        location: form
    """
    employee_id = request.POST.get('employee_id')
    face_image = request.data.get('face_image') <--- this causes the error

这是带有imagefield的模型

class Employee(models.Model):
    ....
    face_image = models.ImageField(upload_to='face_image/', blank=True)

有人能让我知道正确的方法吗?处理帖子中的图像并将其保存到模型中。我的完整源代码在这些链接中。感谢。

1 个答案:

答案 0 :(得分:0)

FileUploadParser解决了这个问题并能够接受图片帖子

parser_classes = (FileUploadParser,)
face_image_obj = request.data['face_image']