使用 Django Rest Framework 在 Pre_Save 中引发验证错误

2024-04-08

我在使用 Django Rest 框架提出验证错误时遇到困难。

我有一个所有者字段。所有者字段需要访问请求对象。文档建议使用以下方法 http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions:

def pre_save(self, obj):
    obj.owner = self.request.user

我的问题是如果此代码失败如何引发验证错误。我尝试在 pre_save 方法中引发错误,但这无法正常工作。它实际上会导致从 Django 返回 HTML 响应,而不是来自 Django Rest Framework 的消息。


Use the Django Rest框架异常 http://www.django-rest-framework.org/api-guide/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 以一种很好的方式返回。

Note:

如果您正在进行大量验证,您可能需要查看将您的逻辑放入序列化器中 http://www.django-rest-framework.org/api-guide/serializers#validation.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Django Rest Framework 在 Pre_Save 中引发验证错误 的相关文章

随机推荐