如何为权限类创建自定义响应现在的回应是:
{"detail": "Authentication credentials were not provided."}
我想要的答案:
{ "status": 403, "message": "Authentication credentials were not provided", "response": {....} }
eivnm1vs1#
根据官方文档here,您需要覆盖View中的.handle_exceptions方法以自定义响应。这里的官方文档展示了如何创建自定义异常处理程序。
.handle_exceptions
42fyovps2#
也许不是什么行动所面临的,但一个类似的问题,我只是想把这个作为一个选项张贴给其他有这个问题的人。我也面临着同样的问题,在我的例子中,我有一个自定义的身份验证类,它在我的视图中使用。这是我找到的解决方案。django权限类在引发permission_denied时的默认行为是检查
if request.authenticators and not request.successful_authenticator: raise exceptions.NotAuthenticated() # <-- HERE raise exceptions.PermissionDenied(detail=message, code=code)
您可以在此link中看到更详细的信息。在我的示例中,我没有在成功验证后执行return user, None。我一开始使用return user, None,自定义权限就开始工作了。
return user, None
2条答案
按热度按时间eivnm1vs1#
根据官方文档here,您需要覆盖View中的
.handle_exceptions
方法以自定义响应。这里的官方文档展示了如何创建自定义异常处理程序。
42fyovps2#
也许不是什么行动所面临的,但一个类似的问题,我只是想把这个作为一个选项张贴给其他有这个问题的人。
我也面临着同样的问题,在我的例子中,我有一个自定义的身份验证类,它在我的视图中使用。
这是我找到的解决方案。
django权限类在引发permission_denied时的默认行为是检查
您可以在此link中看到更详细的信息。在我的示例中,我没有在成功验证后执行
return user, None
。我一开始使用
return user, None
,自定义权限就开始工作了。