问题一般是这样的:我有一个包含内容的页面,用户可以对其进行评论。插入评论应该在不重新加载页面的情况下进行。
在视图中处理注释表单,该注释将注释保存到数据库。保存注释后,我将新注释序列化为json并返回到页面。
data = serializers.serialize('json', [comment])
return HttpResponse(data, mimetype='application/javascript')
这很有效,注释被添加到div的顶部,但是如何将格式化标签应用于jQuery?评论假设显示为
<div class="comment">{{comment}}<br>{{ comment.created | timesince }}</div>
是否可以将模板标签应用于jQuery代码?当然有一个问题,其他评论不更新,所以timesince显示错误..要纠正这一点,我必须更新整个评论列表并再次循环所有评论到页面,但同样的问题仍然是当然..
是否可以通过某种方式将所有注释作为字典返回并使jQuery加载模板以显示所有注释来更新注释的整个列表..
或者其他任何想法如何解决这个问题?
答案 0 :(得分:3)
不是返回JSON,而是通过呈现包含要更新的页面部分的模板来返回HTML。然后,客户端jQuery代码可以根据需要插入新HTML或替换现有HTML。
答案 1 :(得分:1)
最简单的方法是从另一个视图返回模板化的html并使用jquery的replaceWith。