我想知道什么时候应该使用serializer.is_valid(raise_exception=True)
?如果我没有实现任何自定义验证,是否需要使用 raise_exeption=True
标志?如果我的 API 没有引发 ValidationErrors
怎么办,这是一种不好的做法吗?如果是,那么为什么是默认的 raise_exception=False
?我只是想知道是否应该将其设置为 True。感谢您的建议。
最佳答案
通常在验证序列化器时我们会这样做
如果不是serializer.is_valid():
引发 ValidationError(serializer.errors)
restapi 捕获此异常并以列表或字典的形式返回 400 响应以及提供的错误。
编写上述代码的更简洁的方法是
serializer.is_valid(raise_exception=True)
80% 的情况下,你会想要使用 raise_exception=True ,除非你需要在代码中处理序列化器的错误,而不是简单地告诉用户他的输入是错误的。
关于Django 休息框架。 raise_exception=真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40348981/