【发布时间】:2018-01-12 20:45:18
【问题描述】:
我正在使用 django-rest-framework 创建一个返回 PDF 的端点。但是,当呈现 PDF 时出错时,我想返回 JSON 响应。但是 DRF 将异常数据传递给我的 PDFRenderer 类。如果出现错误,我该如何使用 JSONRenderer?
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。
【问题讨论】:
标签: python django django-rest-framework