我在ubuntu17.10上使用python3.6和Django 2.0.3。我对Django有点陌生,我想理解它。我在html页面中有一个表,其中有一些输入字段,用户将在其中输入数据。下面的AJAX代码从表行获取数据并将其传递给django视图。CSRF是根据django文档处理的,因为我的html中没有表单。在
这是我的AJAX代码(使用jQuery)$(document).ready(function() {
var table = $('#example').DataTable();
$('button').click( function() {
var TableData = new Array();
$('#example tr').each(function(row, tr){
TableData[row]={
"id" : $(tr).find('td:eq(0)').text()
, "student_name" :$(tr).find('td:eq(1)').text()
, "marks" : $(tr).find('td:eq(2) input', this).val()
, "is_present" : $(tr).find('td:eq(3) select', this).val()
}
});
TableData.shift(); // first row will be empty - so remove
TableData = JSON.stringify(TableData);
alert(TableData);
$.ajax({
type: "POST",
url: "{% url 'result:ajax_update_result' %}",
dataType: 'json',
data: TableData,
success: function(msg){
alert(msg);
}
});
return false;
} );
});
下面是上面AJAX中的警报调用的结果。相同的数据被传递给处理此AJAX调用的djago视图代码。在
^{pr2}$
下面是我对上述AJAX调用的django视图。在import json
def save_result(request):
table_data = json.dumps(request.GET.get('TableData'))
print(table_data)
return render(request, 'data/dummy.html', {'msg': 'Data Saved.'})
django控制台为上面的打印输出null(table\u data)
请注意:我用过json.loads在django视图代码中得到一个类型错误。在
我期望来自AJAX调用的数据将被传递给django函数,并将数据作为字典打印在控制台中。在