2014-07-13 3 views
2

Django Rest Framework를 사용하여 유효성 검사 오류를 발생시키는 데 어려움이 있습니다.Django Rest Framework를 사용하여 Pre_Save에서 유효성 검사 오류 발생

소유자 필드가 있습니다. 소유자 필드는 요청 개체에 액세스해야합니다. 문서는 using the following approach 제안 :

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

내 문제는이 코드가 실패 할 경우 유효성 검사 오류를 발생하는 방법입니다. pre_save 메서드 내에서 오류를 발생 시키려고 시도했지만 제대로 작동하지 않습니다. Django Rest Framework의 메시지가 아니라 실제로 장고에서 HTML 응답이 돌아옵니다.

답변

3

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') 

또한 그것이 django.http.Http404 예외를 사용하기 때문에 그건, 거기에 404이 표시되지 않습니다. 이것들은 좋은 방법으로 API에 의해 반환됩니다.

참고 :

당신이 placing your logic in the serializer보고 할 수 있습니다 검증 상당한 양의를 수행하는 경우

.

관련 문제