【问题标题】:Django REST Framework, image breaks on uploadingDjango REST Framework,上传时图像中断
【发布时间】:2018-01-17 02:21:15
【问题描述】:

我有模型产品:

class Product(models.Model):
    ...
    image = models.ImageField(
        upload_to=lambda instance, filename: 'images/{0}/{1}'.format(instance.id, filename),
        max_length=254, blank=True, null=True
    )
    ...

然后我有序列化器:

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = (
            ...
            'image',
            ...
        )

然后我有意见:

class ProductViewSet(BaseViewSet, viewsets.ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer
    @detail_route(methods=['POST'])

    def upload_image(self, request, *args, **kwargs):
        upload = request.data['file']
        print(upload.name)
        product = self.get_object()
        product.image.delete()

        upload = request.data['file']
        product.image.save(upload.name, upload)

        return Response({'Location': product.image.url}, status=status.HTTP_201_CREATED)

问题仅在于图像。在上传图片时更改了“源代码”,我无法在浏览器黑色窗口中打开它。 Mp3 和 PDF 格式可以正常工作。为什么会发生?谢谢。

【问题讨论】:

    标签: django image upload django-rest-framework


    【解决方案1】:

    也许问题出在 base64 图像上?在这种情况下,您应该从 drf_base64.serializers 导入 ModelSerializer 并从中继承。

    【讨论】:

    • 问题出在解析器上,我使用 FileUploadParser 而不是 MultiPartParser :) 谢谢!
    猜你喜欢
    • 2016-03-23
    • 1970-01-01
    • 2018-01-15
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2017-03-31
    • 2022-06-14
    相关资源
    最近更新 更多