【发布时间】:2017-07-20 04:36:08
【问题描述】:
同时使用 django 和 django rest 框架并严格使用框架代码。
例子,
使用连接到视图集的路由器将序列化器转换为模型。
我的意思是没有自定义代码,除了需要输入 django rest 框架代码之外,我们不需要异常吗?
我问是因为在我看到的所有代码示例中,我还没有看到 try catch 块。
谢谢
【问题讨论】:
标签: python django rest exception
同时使用 django 和 django rest 框架并严格使用框架代码。
例子,
使用连接到视图集的路由器将序列化器转换为模型。
我的意思是没有自定义代码,除了需要输入 django rest 框架代码之外,我们不需要异常吗?
我问是因为在我看到的所有代码示例中,我还没有看到 try catch 块。
谢谢
【问题讨论】:
标签: python django rest exception
一般来说,如果数据格式不正确或不包含正确的值,例如错误的数据类型或某些请求的无效主键,则会引发某种类型的错误。 Django REST Framework 序列化程序通过引发ValidationErrors 并跟踪serializer.Serializer._errors 中的错误来处理这些类型的错误。 DRF 框架将这些错误以合适的格式呈现给用户,例如:
{"detail": "Method 'DELETE' not allowed."}
当用户尝试发送 HTTP DELETE 请求时。有关 DRF 如何处理不同异常的更多信息,请参阅here。
至于您自己在视图、序列化程序、模型等中编写的代码,您可以尝试/排除和处理您认为有必要的代码。通常在序列化程序中,您可能会使用raise ValidationError(yourError),而在视图中您可能会使用return Response(yourError, status=400)。
希望我有所帮助。
【讨论】: