我在使用 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(使用前将#替换为@)