我想知道,我应该何时使用serializer.is_valid(raise_exception=True)
?如果我没有实现任何自定义验证,是否需要使用raise_exeption=True
标志?如果我的API没有提出ValidationErrors
怎么办?这是一种不好的做法吗?如果是,那么为什么默认为raise_exception=False
?我只是想知道我是否应该将其设置为True。谢谢你的建议。
答案 0 :(得分:7)
通常在验证序列化程序时,我们会执行类似这样的操作
if not serializer.is_valid():
raise ValidationError(serializer.errors)
restapi捕获此异常并以列表或字典形式提供的错误返回400响应。
编写上述代码的更简洁方法是
serializer.is_valid(raise_exception=True)
80%的时间你会想要使用raise_exception = True,除非你需要处理代码中的序列化程序错误,而不是简单地告诉用户他的输入是错误的。