Повторное использование циклов в шаблонах Django - PullRequest
0 голосов
/ 14 апреля 2011

Мне было интересно, есть ли способ повторить цикл с новыми объектами, собранными через jquery / ajax, например, у меня есть {% for car in cars %} что-то сделать, затем после получения новых автомобильных объектов через вызов ajax я хочу отбросить текущие объектыи отображать новые объекты, используя тот же цикл.Это возможно?Это для реализации функции поиска, я сначала показываю некоторые объекты, но у меня есть окно поиска, чтобы люди могли найти конкретные объекты.Я думал о возврате готового html и замене html напрямую, но это немного раздражает.

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

Наилучший подход (я думаю) для этого заключается в следующем:

  1. имеет представление, настроенное в Django, такое как view_cars, которое выводит страницу результатов на основе обычногоGET запрос.URL для этого может выглядеть как 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");
    

Результаты поиска будут автоматически загружены в #cars div, и вам не нужно обрабатывать специальный случай AJAX в Django.

0 голосов
/ 14 апреля 2011

После того, как шаблон прошел через механизм шаблонов, больше не содержит циклов, только вывод текста в той или иной форме. Но когда вы используете AJAX, он снова входит в верхнюю часть представления / a, поэтому вы можете повторно использовать любые циклы, которые вам нравятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...