我在使用 Django Rest Framework 时遇到验证错误。
我有一个所有者字段。所有者字段需要访问请求对象。文档建议 using the following approach :
def pre_save(self, obj):
obj.owner = self.request.user
我的问题是如果此代码失败,如何引发验证错误。我尝试在 pre_save 方法中引发错误,但这不能正常工作。它实际上会导致从 Django 返回 HTML 响应,而不是来自 Django Rest Framework 的消息。
最佳答案
使用 django rest framework exceptions .例如:
from rest_framework.exceptions import ParseError
...
parsed_data = self.parse(some_data)
if not parsed_data:
raise ParseError('Some error occurred')
另请注意,您不会在其中看到 404,那是因为它使用了 django.http.Http404 异常。这些由 API 以一种很好的方式返回。
注意:
如果您正在进行大量验证,您可能需要查看 placing your logic in the serializer .
关于django - 使用 Django Rest Framework 在 Pre_Save 中引发验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24726789/