如何使用jQuery的Django模板标签和过滤器?

时间:2011-05-06 19:23:11

标签: jquery ajax django commenting

问题一般是这样的:我有一个包含内容的页面,用户可以对其进行评论。插入评论应该在不重新加载页面的情况下进行。

在视图中处理注释表单,该注释将注释保存到数据库。保存注释后,我将新注释序列化为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加载模板以显示所有注释来更新注释的整个列表..

或者其他任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

不是返回JSON,而是通过呈现包含要更新的页面部分的模板来返回HTML。然后,客户端jQuery代码可以根据需要插入新HTML或替换现有HTML。

答案 1 :(得分:1)

最简单的方法是从另一个视图返回模板化的html并使用jquery的replaceWith