inp*_*ive 3 django django-rest-framework
我在使用 Django Rest 框架提出验证错误时遇到困难。
我有一个所有者字段。所有者字段需要访问请求对象。该文档建议使用以下方法:
def pre_save(self, obj):
obj.owner = self.request.user
Run Code Online (Sandbox Code Playgroud)
我的问题是如果此代码失败如何引发验证错误。我尝试在 pre_save 方法中引发错误,但这无法正常工作。它实际上会导致从 Django 返回 HTML 响应,而不是来自 Django Rest Framework 的消息。
使用django Rest 框架例外。例如:
from rest_framework.exceptions import ParseError
...
parsed_data = self.parse(some_data)
if not parsed_data:
raise ParseError('Some error occurred')
Run Code Online (Sandbox Code Playgroud)
另请注意,您不会在其中看到 404,那是因为它使用 django.http.Http404 异常。这些由 API 以一种很好的方式返回。
笔记:
如果您正在进行大量验证,您可能需要考虑将逻辑放入序列化器中。
| 归档时间: |
|
| 查看次数: |
2585 次 |
| 最近记录: |