在ModelViewSet中返回422状态代码

时间:2016-01-05 10:47:13

标签: django ember.js ember-data django-rest-framework json-api

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

奖金:

  • 为什么EmberData期待422?就我所见,这不是JSONAPi规范的一部分。

1 个答案:

答案 0 :(得分:6)

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