Django Rest Framework,使用MultiPartParser时查询字典为空

时间:2018-06-23 13:24:44

标签: python django django-rest-framework

我正在尝试使用DRF上传图像:

我有简单的序列化器:

class ImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = Image
        fields = ('file',)

在我的模型中,此file字段很简单ImageField

然后我创建了视图集:

class ImagesViewSet(ModelViewSet):
    serializer_class = ImageSerializer
    queryset = Image.objects.all()
    permission_classes = (IsAuthenticated,)

    parser_classes = (MultiPartParser, FormParser)

    @action(methods=['post'], detail=False,
            permission_classes=[IsAuthenticated])
    def upload_avatar(self, request):
        print(request.data)
        return Response({"image": "ok"})

我只想打印我要上传的内容。

在请求上传数据后:

upload2

我的查询区返回我:

<QueryDict: {}>

是虫子吗?还是我错过了什么?

DRF版本:3.8.2

Django:2.0.6

2 个答案:

答案 0 :(得分:2)

可能是邮递员的错误。尝试在发送请求之前从邮递员的请求标头中删除Content-Type

有时邮递员没有设置正确的标题(内容类型)。这可能是问题所在。

答案 1 :(得分:1)

Django的request.FILES而不是request.data怎么样? Django Docs File Uploads

  

当Django处理文件上传时,文件数据最终放置在request.FILES中。