programing

AssertionError: .accepted_renderer가 django 및 ajax의 응답으로 설정되지 않음

newnotes 2023. 3. 26. 11:46
반응형

AssertionError: .accepted_renderer가 django 및 ajax의 응답으로 설정되지 않음

Ajax에서 Django URL을 호출하는 동안 아래 오류가 발생함

AssertionError: .accepted_renderer가 응답으로 설정되지 않았습니다.

코드는 다음과 같습니다.

function download(){

    $.ajax({
        url: "/mdm/exam_app/get_assessment_count/",
        dataType: 'json',
        data:{
        },
        type:'GET',
        success: function (data) {
          alert("inside the success method");
    },
        error: function(){
          console.log("error");
          }        
      });
}

함수 기반 뷰를 사용하는 경우 이 문제는 보통 뷰에 @api_view @render_classes 데코레이터를 추가하는 것을 잊었다는 것을 의미합니다.

예:

from rest_framework.decorators import api_view, renderer_classes
from rest_framework.renderers import JSONRenderer, TemplateHTMLRenderer

@api_view(('GET',))
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
def get_assessment_count(request):
    [...]
    data = {'count': queryset.count()}
    return Response(data, template_name='assessments.html')

클래스에서 Response를 사용하는 동안 Django Rest Framework에서 이 문제가 발생한 경우 View 대신 API View를 사용하는 것을 잊지 마십시오.

@DavidLam에 의해 받아들여진 답변 외에, 당신의 뷰/handler4xx/handler5xx에 오류가 발생하여 적절하게 검출되지 않았을 수도 있습니다.

언급URL : https://stackoverflow.com/questions/55416471/how-to-resolve-assertionerror-accepted-renderer-not-set-on-response-in-django

반응형