2017-03-10 4 views
0

DEBUG = True로 api.py 파일에 사용자 정의 오류를 표시하려고합니다. 오류가 throw됩니다.TastyPie debug = True로 사용자 정의 오류 및 상태 코드 = 500

{ 
"error_message": "Sorry, this request could not be processed. Please try again later." 
} 

이것은 기본 TASTYPIE_CANNED_ERROR 메시지입니다. 내가 _handle_500 방법을 재정의하는 시도

{"error_message": "{'id': 2671, 'error': 'Duplicate'}"} 

하지만 응답 내 웹 사이트의 HTML 페이지를 반환하는 것 같다

나는 오류 이런 식으로 뭔가가되고 싶어요.

내가 가진 상태 코드 (400)에 필요한 형식을 얻을 :

raise BadRequest({"id": int(attempt[0].id), "error": "Duplicate"}) 

하지만 500

답변

0

사용 ImmediateHttpResponse 수 및 오류 메시지가 DICT 만든 다음 응답을 보내는 상태 코드가 필요 . 또한 content_type = "application/json"을 지정해야합니다.

from django.http import HttpResponse 
from tastypie.exceptions import ImmediateHttpResponse 

// Build your response 
response = {"error_message": {'id': 2671, 'error': 'Duplicate'}} 

raise ImmediateHttpResponse(response=HttpResponse(json.dumps(response), status=401, content_type="application/json")) 
관련 문제