用 django 模板语言实现 javascript
Posted
技术标签:
【中文标题】用 django 模板语言实现 javascript【英文标题】:implement javascript in django templates language 【发布时间】:2012-11-29 22:18:48 【问题描述】:% with JSONContent as object %% include "_comments.html" %% endwith %
JSONContent 是我通过$.get()
方法获得的 django 模型实例。
“_cmets.html”是 cmets 的未渲染模板。
我想渲染该模板,并通过 AJAX 将其发送到客户端(因此,revieved 数据是模板中渲染的 HTML)
我该怎么做?
听起来您正在从 ajax 请求到服务器获取模型的实例,并且您想在“_cmets.html”模板中使用该实例。那正确吗?如果是这样,您可以改为在服务器上呈现模板并在 ajax 请求中获取呈现的 HTML。
因此,假设您有一个名为 fetch_new_comments
的视图来处理 ajax 请求。视图可能看起来像这样,而不是获取评论模型并将其转储到 JSON 并返回它:
def fetch_new_comments(request):
comments = ... # get whatever data you're using
return render_to_response("_comments.html", "comments": comments)
所以这意味着您的 ajax 请求将收到一大块 HTML(而不是 JSON 对象),并将其插入页面。如果你使用 jQuery,你可以这样做:
$.get("http://yoursite.com/fetch_new_comments/", function (resp)
$("#new_comments_container").html(resp);
);
【讨论】:
但如何编译 html 并将其应用于“cmets”? 对不起,我不明白你的意思。 ajax 请求向服务器发送新 cmets 的请求,这会导致执行fetch_new_comments
视图。 fetch_new_comments
从数据库中获取一些数据,将其存储在 comments
变量中,并呈现可以访问 comments
变量的模板 (_cmets.html)。呈现的模板是 HTML 块,作为 ajax 请求的结果返回,然后发出 ajax 请求的 javascript 代码将这块 HTML 插入页面。
也许如果您仍然感到困惑,您可以展示 _cmets.html 模板以及如何获得您在问题中提到的JSONContent
。
我已经改变了问题,希望现在已经清楚了,感谢您的宝贵时间!
对不起,我不明白为什么我的回答不能回答你的问题。当您致电$.get
时,请求是否会发送到属于您网站一部分的 URL?如果是这样,URL 应该返回呈现的模板,而不仅仅是 JSON 形式的数据。您的更多代码会有所帮助,例如调用 $.get
的 Javascript 和返回 JSON 对象的视图。以上是关于用 django 模板语言实现 javascript的主要内容,如果未能解决你的问题,请参考以下文章
是否有几乎类似于 Django 模板语言的 PHP 模板语言?