Как правильно отобразить zip (из 4 списков) и словарь по шаблону django? - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь отобразить некоторые данные, которые были возвращены функцией таблицы в шаблоне django.Я рендерил два разных списка, которые имеют одинаковую длину, но когда я рендерил их во вложенном цикле for, по какой-то причине я получаю дополнительные копии внутреннего цикла.

  {% for d,t,r,y in open_route_info %}
            {% for k,v in open_trucks.items %}
                {% for i in v %}
                    k = {{ k }}
                    v = {{ v }}
                    i = {{ i }}
                    d = {{ d }}
                    t = {{ t }}
                    r = {{ r }}
                    y = {{ y }}
                {% endfor %}
            {% endfor %}
        {% endfor %}

Для ^ это я получаювыведите как:

k = Дехрадун-Гургаон v = [{: []}] i = {: []} d = 0,279 t = 07 часов 19 минут r = googlemaps.com y = май23, 2019, 4:31 утра k = Дели-Мумбаи v = [{: []}] i = {: []} d = 0,279 t = 07 часов 19 минут r = googlemaps.com y = 23 мая 2019 года,4:31 утра k = Дехрадун-Гургаон v = [{: []}] i = {: []} d = 1413,204 t = 29 часов 48 минут r = googlemaps.com y = 22 мая 2019 года, 6:03 утраk = Дели-Мумбаи v = [{: []}] i = {: []} d = 1413,204 t = 29 часов 48 минут r = googlemaps.com y = 22 мая 2019 года, 6:03 утра

Прошу прощения за уродливые данные ....

Когда я отрисовываю их по отдельности, я получаю правильное количество данных, которое в обоих случаях равно 2.Вот код для этого:

        {% for d,t,r,y in open_route_info %}
                    d = {{ d }}
                    t = {{ t }}
                    r = {{ r }}
                    y = {{ y }}
        {% endfor %}

для этого я получаю этот вывод:

d = 0,279 t = 07 часов 20 минут r = googlemaps.com y = 23 мая, 2019, 4:32 утра d = 1413,204 t = 29 часов 50 минут r = googlemaps.com y = 22 мая 2019 года, 6:03 утра

Как видите, есть два изкаждое из значений здесь, (d = дата, t = время, r = карта маршрута, y = ETA транспортного средства)

При отображении только словаря open_trucks вне любого вложенного цикла, я использовал это:

   {% for k,v in open_trucks.items %}
                    {% for i in v %}
                        k = {{ k }}
                        v = {{ v }}
                        i = {{ i }}
                    {% endfor %}
   {% endfor %}

и вывод:

k = Дехрадун-Гургаон v = [{: []}] i = {: []} k = Дели-Мумбаи v= [{: []}] i = {: []}

Здесь также, как вы можете видеть, есть только 2 элемента.Так что длина обоих элементов одинакова.Но, когда я использую их вложенными, я получаю 4 результата, из которых последние 2 являются просто копиями первого.

Это мой словарь open_trucks:

{'Dehradun-Gurgaon': [{<Truckdb: Truckdb object (7)>: [<ItemBatch: A>]}], 
 'Delhi-Mumbai': [{<Truckdb: Truckdb object (7)>: [<ItemBatch: E>]}]}

Это мой open_route_infoчто представляет собой почтовый индекс из 4 списков, каждый из которых имеет длину 2:

(0.279, '07 Hours 02 Minutes', 'googlemaps.com', datetime.datetime(2019, 5, 23, 9, 31, 24, 538432))
(1413.204, '29 Hours 02 Minutes', 'googlemaps.com', datetime.datetime(2019, 5, 22, 11, 31, 59, 625005))

Получаю ли я неправильные результаты из-за неправильного использования почтового индекса ??Что-нибудь еще, что я мог бы пропустить?


...