Попытка сопоставить два соответствующих значения с разными ключами в python django - PullRequest
1 голос
/ 13 июля 2020

в моем проекте django, я пытаюсь сопоставить следующее:

В views.py

context = {'name': [a, b, c], 'price': [x, y, z], 'date': [1, 2, 3]}

return render(request, 'index.html', context)

В моем индексе . html:

{% for value in context %}
    <tr>
        <td>{{ value.name }}</td>
        <td>{{ value.price }}</td>
        <td>{{ value.date}}</td>
    </tr>
{% endfor %}

Моя цель - получить таблицу таким образом:

name | price | date
a    |   x   | 1
b    |   y   | 2
c    |   z   | 3

Я пробовал разные способы, но пока только удалось получить один столбец. Я новичок в Python. Приветствуется любая помощь.

1 Ответ

2 голосов
/ 13 июля 2020

Вы должны сделать это наоборот: сделать итерацию (например, список) словарей, например, с помощью zip(…) [Python -doc] :

data = {'name': [a, b, c], 'price': [x, y, z], 'date': [1, 2, 3]}
new_data = [
    {'name': n, 'price': p, 'date': d}
    <b>for n, p, d in zip(data['name'], data['price'], data['date'])</b>
]

return render(request, 'index.html', {'data': new_data})

В шаблоне вы можете отобразить это с помощью:

{% for <b>row in data</b> %}
    <tr>
        <td>{{ <b>row</b>.name }}</td>
        <td>{{ <b>row</b>.price }}</td>
        <td>{{ <b>row</b>.date }}</td>
    </tr>
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...