Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';格式化AJAX响应的好方法是什么?或者,将Django模板与AJAX结合使用_Javascript_Django - Fatal编程技术网

Javascript 什么';格式化AJAX响应的好方法是什么?或者,将Django模板与AJAX结合使用

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

在我正在编写的一些代码中,作者maxajax调用了一个Django视图,该视图返回JSON

一旦检索到JSON,它将被注入到页面中,并使用如下所示的函数(注意,这是一种简化,但我相信您知道我在这里得到了什么):

。。。但似乎应该有更好的办法


有什么想法吗?

为什么不使用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})