如何在Django中显示ajax调用后的更新日期

如何在Django中显示ajax调用后的更新日期,ajax,django,Ajax,Django,我正在尝试在Django应用程序中实现review部分。下面是我发布和列出商店评论的源代码。我已经用Ajax创建了一个评论,但是我不知道如何在Ajax调用之后显示新创建的评论 就像Like按钮在社交媒体中的工作方式一样,我可以根据Ajax调用的响应通过更改attr()或html()轻松更新Like按钮。但是,这不适用于此评论案例,因为它显示了商店的评论,其中包含for循环。所以我觉得我必须弄清楚如何让for循环在Ajax调用之后再次运行 以前有人做过这个吗 HTML <div class=

我正在尝试在Django应用程序中实现review部分。下面是我发布和列出商店评论的源代码。我已经用Ajax创建了一个评论,但是我不知道如何在Ajax调用之后显示新创建的评论

就像Like按钮在社交媒体中的工作方式一样,我可以根据Ajax调用的响应通过更改
attr()
html()
轻松更新Like按钮。但是,这不适用于此评论案例,因为它显示了商店的评论,其中包含for循环。所以我觉得我必须弄清楚如何让for循环在Ajax调用之后再次运行

以前有人做过这个吗

HTML

<div class="review-new">
  <div class="my-rating" name="rating"></div>    
  <textarea class="form-control" rows="5" id="ratingTextarea"></textarea>
  <input class="global-btn" stlye="float:right" type="button" value="Submit" id="review-submit"
  data-url="{% url 'boutique:post-review-api' store.domainKey %}" data-store-id="{{ store.id }}">
</div>

...

{% for i in store.review_set.all %}
  ...
{% endfor %}
ajax.js

$(document).on("click", "#review-submit", function(e) {
    e.preventDefault();
    var _this = $(this);
    var url = _this.attr("data-url");
    var rating = _this.attr("data-rating");
    var storeId = _this.attr("data-store-id");
    var content = $("#ratingTextarea")[0].value;

    $.ajax({
      url: url,
      method: "POST",
      data: {
        csrfmiddlewaretoken: $("input[name=csrfmiddlewaretoken]").val(),
        rating: rating,
        content: content,
        storeId: storeId
      },
      success: function(res) {
        console.log(res);
      },
      error: function(error) {
        console.log(error);
      }
    });
  });

您可以在单独的模板中隔离审查循环:

reviews.html

{% for i in store.review_set.all %}
  ...
{% endfor %}
在您的HTML中

{% include "reviews.html" %}
在您的views.py中,您可以重新呈现并以HTML格式返回评论模板:

import json
from django.template import loader
from django.shortcuts import HttpResponse
...
reviews_html = loader.render_to_string('reviews.html', context={'store': store})
return HttpResponse(json.dumps({'reviews_html': reviews_html}))
然后,在您的Ajax成功方法中:

  success: function(json) {
      // change your reviews div HTML to json['reviews_html'];
  }

您可以将
'reviews\u html':reviews\u html
更改为
{'reviews\u html':reviews\u html}
?谢谢你的帮助!
  success: function(json) {
      // change your reviews div HTML to json['reviews_html'];
  }