为了与EmberData it seems互操作,无论何时发生验证错误,我都需要reply with 422(Unprocessable Entity)而不是400(Bad Request)。我有两个问题:

  • 使用ModelViewSet时如何指定响应状态代码?
  • 为什么422t没有在possible return codes列表中列出?

  • 和奖金:
  • 为什么EmberData期望422?据我所知,这不是JSONAPi规范的一部分。
  • 最佳答案

    422是WebDAV DRF的一部分,该错误代码不在DRF中。
    这不会阻止您使用它。它们只是数字本身的可读版本。

    一种选择是覆盖rest_framework.exceptions.ValidationError.status_code并将其设置为422。

    编辑-更改默认错误代码:

    # At the top of a views.py file, by the ends of import add:
    from rest_framework.exceptions import ValidationError
    ValidationError.status_code = 422
    

    关于django - 在ModelViewSet中返回422状态代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34609797/

    10-11 15:28