#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()