JsonResponse Возвращает НЕ сериализуемую ошибку в представлении Django

#django #ajax

#django #ajax

Вопрос:

Я пытаюсь передать данные в шаблон в формате Json. JsonResponse возвращает ошибку

Ошибка типа: объект типа method не является сериализуемым в формате JSON

Вот представление кода, которое вызывает ошибку:

     if request.method == 'POST':
        ... SOME CODE HERE ....
    elif request.method == 'GET' and request.is_ajax():
        df = pd.read_csv(project.base_file,  encoding='ISO-8859-1')
        cols = df.keys
        return JsonResponse({'features': cols, }, status=200)
    else:
        form = mForm(project_id=pk)

  

Данные Json должны быть обработаны в следующем Ajax-коде:

   $(document).ready(function(){
    var id_number =$("#projectID").text();
        
    $("#btnSelect").click(function(){
        $.ajax({
            url: '',
            method: 'GET',
            data: {
                project_id: id_number,
            },
            success: function(response){
                $("#id_features").text(response.features)
            }
        });
    });
  });
  

Ответ №1:

Проблема здесь:

 df = pd.read_csv(project.base_file,  encoding='ISO-8859-1')
cols = df.keys
          ^
  

поскольку keys это метод, и вы не можете сериализовать метод в JSON (это заголовок ошибки, верно?), и поскольку вам нужно df значение в виде сериализованного JSON, вы должны вызвать этот метод для его достижения

но попробуйте

 cols=df.keys()