我有 Rails 背景,因此这个问题可能看起来很愚蠢。 在 Rails 中,当我们创建 Ajax 请求时,我们可以通过使用 javascript 选择器渲染部分内容来更新 View ,如下所示:
$("#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
更新 View ,同时使用 with 将 JavaScript 变量 (data) 传递给模板
。但它不起作用。
知道如何实现这一目标吗?
更新
我从 View 中传递了模板,如下所示:
template = render_to_string('projects/connection_info.html', json_data)
return HttpResponse(json.dumps(template), content_type='application/json')
然后在ajax success函数中更新DOM:
success: function (data) {
$('#data-connection-info').html(data);
}
这样问题就解决了。 :)
最佳答案
我从 View 中传递了模板,如下所示:
template = render_to_string('projects/connection_info.html', json_data)
return HttpResponse(json.dumps(template), content_type='application/json')
然后在ajax success函数中更新DOM:
success: function (data) {
$('#data-connection-info').html(data);
}
这样问题就解决了。 :)
关于javascript - Django 使用 Javascript 包含模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52491903/