DRF의 libs 밖에서 오류가 발생하면 django는 DRF에서 사용하는 적절한 오류 응답 대신 오류 HTML을 보냅니다. 예를 들어django rest framework에서 HTML 오류 페이지 반환을 비활성화하는 방법은 무엇입니까?
:
@api_view(['POST'])
@permission_classes((IsAuthenticated,))
def downloadData(request):
print request.POST['tables']
반환을 제외하고 MultiValueDictKeyError: "'tables'"
. 그리고 전체 HTML을 돌려 받으십시오. 어떻게하면 JSON 오류가 발생합니까?
PD :
이 최종 코드 :
@api_view(['GET', 'POST'])
def process_exception(request, exception):
# response = json.dumps({'status': status.HTTP_500_INTERNAL_SERVER_ERROR,
# 'message': str(exception)})
# return HttpResponse(response,
# content_type='application/json; charset=utf-8')
return Response({
'error': True,
'content': unicode(exception)},
status=status.HTTP_500_INTERNAL_SERVER_ERROR
)
class ExceptionMiddleware(object):
def process_exception(self, request, exception):
# response = json.dumps({'status': status.HTTP_500_INTERNAL_SERVER_ERROR,
# 'message': str(exception)})
# return HttpResponse(response,
# content_type='application/json; charset=utf-8')
print exception
return process_exception(request, exception)
그래도, 각 뷰를 다시 패치해야합니다. 나는 세계적으로 사용될 수있는 것이 존재하는지 궁금하다. – mamcx
@mamcx 나는 나의 대답을 업데이트했다. 이것을 봐주세요. – mariodev
니스, @mariodev. DRF가이를 포함해야합니다. JSON API가 HTML을 반환하는 것은 나쁜 형식입니다. 아마 그것을 제출해야합니까? ;-) – s29