Django模板 - ajax响应 - 如何?

Nac*_*uel 2 javascript python django ajax jquery

在阅读了一堆关于此的博客后,我找不到答案,也在SO中搜索过.

我有一个使用django模板标签的模板:

<div class="box" id="dates">
     <h2 class="h2">Dates</h2>
          <ul class="list-group">
                {% for days in dates %}
                <li class="list-group-item list-group-item-success">{{ days }}</li>
                {% endfor %}
          </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

这个div等待来自ajax响应的答案.这是ajax代码:

$("#formi").submit(function(event){
   event.preventDefault();
    var data = new FormData($('form').get(0));

        $.ajax({
             type:"POST",
             url:"{% url 'dates' %}",
             data: data,
             processData: false,
             contentType: false,
             csrfmiddlewaretoken: '{{ csrf_token }}',

             success: function(data){
                 console.log("YEEEEEEEEEEEEEEEEAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHH")
                 $("#dates").html({{ data.dates }});
                },
        });
   });
Run Code Online (Sandbox Code Playgroud)

相当自我解释.它将一个表单发送到视图,该视图使用将用于填充for loop模板的数据响应json .

我可以看到数据在控制台中进入模板

在此输入图像描述

在此输入图像描述

但是你可以看到,在ajax成功{{data.dates}}之后$("#dates").html,这并没有认出我的标签

那么,我怎样才能在我的模板中使用这个django标签并从ajax响应中获取数据?

提前感谢您提供的任何帮助.

ozg*_*gur 5

data是一个纯文本,而不是一个python变量,所以你不能打印出来{{ }}.它看起来像一个JSON对象,因此您可以执行以下操作:

假设您已jQuery安装:

$.each(data.dates, function(i, val) {
    $('ul.list-group').empty().append(
        $('<li>').addClass('list-group-item list-group-item-success').text(val)
    )
});
Run Code Online (Sandbox Code Playgroud)