Django 休息框架。 raise_exception=真

标签 django django-rest-framework

我想知道什么时候应该使用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/

相关文章:

python - Django Rest Framework : CreateAPIView, 存储数据时我想使用主键

python - 如何为基于类的 View 创建分页器?

python - 操作错误(1054, "Unknown column ' 月'在 'field list' 中)

django-rest ModelSerializer 选择要在嵌套关系中显示的字段

django - 如何优化 Django 1.8 中的迁移

python - Django Rest Framework 未从我的数据库检索数据

mysql - 注释 Django 1.8 中复杂子查询的结果到 QuerySet

python - Django Rest Framework 中外键字段的动态选择

Django rest 框架在serializer.py 或views.py 中编写复杂逻辑的位置?

python - 如何将属性或对象注入(inject)到 Django Rest Framework 中的 View 中?