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

我有简单的序列化程序:

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

这个 file 字段在我的模型中是简单的 ImageField

然后我创建了 View 集:
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"})

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

请求上传数据后:

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

我的查询字典返回我:
<QueryDict: {}>

是bug吗?还是我错过了什么?

DRF 版本:3.8.2

姜戈:2.0.6

最佳答案

这可能是 postman 的错误。在发送请求之前,尝试从 postman 的请求头中删除 Content-Type

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

关于python - Django Rest Framework,使用 MultiPartParser 时查询字典为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51001598/

10-15 00:08