如何使用Django Rest Framework设置Content-Disposition头

zy1mlcev  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(173)

我正在使用Django REST框架提供一个图像。不幸的是,它会下载而不是显示。我想我必须设置头部Content-Disposition = 'inline'。我如何在ViewRenderer中做到这一点?

class ImageRenderer(renderers.BaseRenderer):
    media_type = 'image/*'
    format = '*'
    charset = None
    render_style = 'binary'

    def render(self, data, media_type=None, renderer_context=None):
        return data

class ImageView(APIView):
    renderer_classes = (ImageRenderer, )

    def get(self, request, format=None):
        image=MyImage.objects.get(id=1)
        image_file = image.thumbnail_png.file
        return Response(image)

字符串

cmssoen2

cmssoen21#

根据Django文档中的这个页面,你可以这样设置Content-Disposition头:

response = Response(my_data, content_type='image/jpeg')
response['Content-Disposition'] = 'attachment; filename="foo.jpeg"'

字符串

6bc51xsx

6bc51xsx2#

Django 4.2包含了一个django.utils.http.content_disposition_header()来为你处理头文件的编码和格式。参见文档。

相关问题