我来自Rails背景,因此这个问题似乎很愚蠢。 在Rails中,当我们创建Ajax请求时,可以通过使用javascript选择器呈现部分视图来更新视图,如下所示:
$("#dashboardEmails").html("<%=j render partial: 'emails', locals: {emails: @emails} %>");
如何在Django模板中做到这一点?我尝试了以下方法:
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize() + "&submit=connect",
success: function (data) {
if(data['tables'].length > 0){
$('#data-connection-info').html("{% include 'projects/connection_info.html' with data='"data"' %}");
}
console.log(data);
},
error: function (data) {
console.log("Error");
}
});
在这里,我想使用模板projects/connection_info.html
更新视图,同时还使用with
将javascript变量( data )传递给模板。但这是行不通的。
任何想法我该如何实现?
更新
我从如下视图传递模板:
template = render_to_string('projects/connection_info.html', json_data)
return HttpResponse(json.dumps(template), content_type='application/json')
然后在ajax成功函数中更新DOM:
success: function (data) {
$('#data-connection-info').html(data);
}
以这种方式解决了问题。 :)
答案 0 :(得分:0)
我从如下视图传递模板:
template = render_to_string('projects/connection_info.html', json_data)
return HttpResponse(json.dumps(template), content_type='application/json')
然后在ajax成功函数中更新DOM:
success: function (data) {
$('#data-connection-info').html(data);
}
以这种方式解决了问题。 :)