我正在尝试使用DEBUG = True在我的api.py文件中抛出自定义错误。它抛出错误
{
"error_message": "Sorry, this request could not be processed. Please try again later."
}
这是默认的TASTYPIE_CANNED_ERROR消息。
我希望错误是这样的:
{"error_message": "{'id': 2671, 'error': 'Duplicate'}"}
我尝试重写_handle_500方法,但这似乎返回我的网站html页面作为回应。
我使用状态代码400获得所需的格式:
raise BadRequest({"id": int(attempt[0].id), "error": "Duplicate"})
但我需要状态代码为500。
答案 0 :(得分: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"))