如题,之前使用的是 flask 框架, 抛出的异常都是自定义状态码和详细的异常信息, 抛出异常的格式为:
{
"code": "1001",
"data": {},
"response": "请求不符合规范",
"time": 2
}
然后现在学习使用 drf 框架, 比如在序列化器校验的时候抛出一个异常:
raise serializers.ValidationError('登录密码错误')
这个时候通过 postman 去故意触发这个报错,返回信息如下:
{
"non_field_errors": [
"登录密码错误"
]
}
然后我在序列化器中定义一个方法def validate_username去检验用户名称,在该方法中定义一个异常:
raise serializers.ValidationError('用户名称不符合规范')
然后故意去触发该异常,返回的信息如下:
{
"username": [
"用户名称不符合规范"
],
}
我现在就有点蒙了, 为什么返回异常的字段还会不断的变化?或者我应该怎么样捕获到它所有的异常来统一处理呢?网上有人说定义方法重新捕获,但是像如上的这种情况,连异常的字段信息都不一致,我该如何捕捉到具体的报错信息呢?