Javascript 什么';格式化AJAX响应的好方法是什么?或者,将Django模板与AJAX结合使用
在我正在编写的一些代码中,作者maxajax调用了一个Django视图,该视图返回JSON 一旦检索到JSON,它将被注入到页面中,并使用如下所示的函数(注意,这是一种简化,但我相信您知道我在这里得到了什么): 。。。但似乎应该有更好的办法Javascript 什么';格式化AJAX响应的好方法是什么?或者,将Django模板与AJAX结合使用,javascript,django,Javascript,Django,在我正在编写的一些代码中,作者maxajax调用了一个Django视图,该视图返回JSON 一旦检索到JSON,它将被注入到页面中,并使用如下所示的函数(注意,这是一种简化,但我相信您知道我在这里得到了什么): 。。。但似乎应该有更好的办法 有什么想法吗?为什么不使用django模板语言的for循环功能呢 {% for event in events %} ... {% endfor %} 您可以通过以下方式进行调用: render_to_string('event/events_templa
有什么想法吗?为什么不使用django模板语言的for循环功能呢
{% for event in events %}
...
{% endfor %}
您可以通过以下方式进行调用:
render_to_string('event/events_template.html', {'events':events}, context_instance=RequestContext(req)
我可以使用修改版的tempest:
修改为使用[[]]和[%%],而不是{{}和{%%},因为django模板系统将使用它们。Ajax调用可以轻松返回呈现的HTML,Javascript可以简单地将其注入页面。因此,请使用诱人的系统呈现HTML片段,然后将其返回给您的JS。我编写了一个Django/Ajax库,为您组织了这个库。您可以这样编写模板:
{% load ajax %}
{% adjax_include "event/_event_list.html" %}
在您看来,您可以做如下操作:
import adjax
@adjax_response
def view_listings(req):
events = models.Event.objects.all()
adjax.render_to_response("event/_event_list.html", {'events': events})
还有一个模板标记,用于标记要替换的单个值,例如{%adjax event.title%}
然后adjax.update(请求、事件、('title','description','id'))
在视图中。但目前这只是单个对象,而不是查询集。不过这是个好主意,我可能会很快实施它
请参见查看该项目。它在非常漂亮、紧凑的基础上使用了一种变体,专门为您这样的情况而设计。不确定它是否有效,但您可以使用“包含”吗?假设您仍然需要ajax调用,这并不是重点。只是我不想用javascript构建HTML,但仍然希望通过AJAX调用返回JSON。如果需要用一个AJAX查询返回的数据填充两个div,该怎么办?进行两次ajax调用和两次数据库点击?看起来有点浪费。
{% load ajax %}
{% adjax_include "event/_event_list.html" %}
import adjax
@adjax_response
def view_listings(req):
events = models.Event.objects.all()
adjax.render_to_response("event/_event_list.html", {'events': events})