4
我正在使用django-rest-framework创建一个返回PDF的端点。但是,当呈现PDF时出现错误时,我想返回JSON响应。但DRF将异常的数据传递给我的PDFRenderer类。只有在出现错误时,我如何才能使用JSONRenderer?在例外中覆盖django-rest-framework中的可接受渲染器
class PDFRenderer(BaseRenderer):
""" DRF renderer for PDF binary content. """
media_type = 'application/pdf'
format = 'pdf'
charset = None
render_style = 'binary'
def render(self, data, media_type=None, renderer_context=None):
return bytes(data)
例如,当我的观点说raise PermissionDenied()
,因为授权的用户无权查看所请求的PDF,DRF通过{'detail': 'You do not have permission to perform this action.'}
作为data
参数PDFRenderer.render
。
编辑:我尝试了custom exception handler但显然你仍然有通过DRF的异常处理程序来运行它,以及,它传递给PDFRenderer。