javascript - Django 使用 Javascript 包含模板

标签 javascript ajax django python-3.x django-templates

我有 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/

相关文章:

javascript - Backbone.js 缓慢的服务器 save() 响应覆盖本地更改的属性

javascript - 3d 透视效果只能在 chrome 中正常工作?

javascript - 冷融合下载文件

javascript - 将 Ajax 与 celery 任务一起使用

django - jquery-ui-1.12.0.min.css 中的collectstatic 形成的文件名错误?

django - 使用 Django 的内置服务器处理 OPTIONS 请求

javascript - 使用removeEventListener删除包装函数回调

javascript - 从父路由/模板访问嵌套路由参数

php - 如何在提交到 3rd 方服务器之前保存数据?

javascript - 如何在 Rails 4 上获取 ajax 注释