在django模板中重用循环

时间:2011-04-14 04:08:06

标签: django

我想知道是否有办法用jquery / ajax收集的新对象重复循环,例如我有{% for car in cars %}做某事,然后通过ajax调用获取新的汽车对象后我想丢弃当前对象并使用相同的循环显示新对象。那可能吗?这是为了实现一个搜索功能,我最初显示一些对象,但我有一个搜索框供人们查找特定对象。我想回到现成的html并直接替换html,但这有点烦人。

2 个答案:

答案 0 :(得分:1)

这样做的最佳方法(我认为)是:

  1. 在Django中设置了一个视图,例如view_cars根据常规GET请求输出结果页面。此网址可能类似于http://mysite.com/cars/1。该视图的模板可能如下所示:

    <div id="cars">
        {% for car in cars %}
        <!-- output here! -->
        {% endfor %}
    </div>
    
  2. 让jQuery使用$.load()函数加载结果,如下所示:

    $("#cars").load("http://mysite.com/cars/2 #cars");
    
  3. 搜索结果将自动加载到#cars div中,您无需在Django中处理特殊的AJAX案例。

答案 1 :(得分:0)

一旦模板通过模板引擎, 就不再有循环,只是以一种形式或另一种形式输出文本。但是当你使用AJAX它重新进入/ a视图的顶部时,你可以在那时重用你喜欢的任何循环。