django休息框架。 raise_exception =真

时间:2016-10-31 19:13:03

标签: django django-rest-framework

我想知道,我应该何时使用serializer.is_valid(raise_exception=True)?如果我没有实现任何自定义验证,是否需要使用raise_exeption=True标志?如果我的API没有提出ValidationErrors怎么办?这是一种不好的做法吗?如果是,那么为什么默认为raise_exception=False?我只是想知道我是否应该将其设置为True。谢谢你的建议。

1 个答案:

答案 0 :(得分:7)

通常在验证序列化程序时,我们会执行类似这样的操作

if not serializer.is_valid(): raise ValidationError(serializer.errors) restapi捕获此异常并以列表或字典形式提供的错误返回400响应。 编写上述代码的更简洁方法是

serializer.is_valid(raise_exception=True)

80%的时间你会想要使用raise_exception = True,除非你需要处理代码中的序列化程序错误,而不是简单地告诉用户他的输入是错误的。