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