В настоящее время я создаю небольшой менеджер (изучаю Python) с помощью Pythons Flask, который использует механизм шаблонов Jinja2. Я использую Peewee для общения с моей базой данных.
У меня есть словарь контактов, который содержит информацию о данном контакте. Информация о булавках поступает непосредственно от Peewee, например:
pins = {}
pins[3] = Pin.get(Pin.id == 3)
pins[5] = Pin.get(Pin.id == 5)
pins[7] = Pin.get(Pin.id == 7)
pins[8] = Pin.get(Pin.id == 8)
(Используя только эти четыре в качестве примера)
В моем шаблоне я повторяю эти четыре контакта и хотел бы отобразить информацию о своей БД (например, описание, состояние и идентификатор), поэтому я написал этот код:
{% for pin in pins %}
{% if pin.state %}
<input type="checkbox" checked="checked" data-toggle="toggle" data-pin="{{ pin.id }}">
{% else %}
<input type="checkbox" data-toggle="toggle" data-pin="{{ pin.id }}" ?>
{% endif %}
{{ pin.description }}
<br>
{% endfor %}
Согласно веб-сайту jinja2 и этот вопрос код должен работать, так как я обращаюсь к pin.state, pin.id и pin.description внутри цикла.
Но это не так. Независимо от того, какое свойство я пытаюсь показать, оно просто ничего не дает мне при использовании {{ pin.description }}
для доступа к свойству. Я заметил следующее, что может помочь
- Если я сделаю
{{ pin }}
внутри цикла, он напечатает текущий ключ словаря. - Если я сделаю
{{ pins[pin].description }}
внутри цикла, он напечатает правильное описание.
Согласно моему пониманию документации и связанного вопроса, должна быть возможность показать текущие значения, используя {{ pin.description }}
внутри цикла.
Может ли кто-нибудь пролить свет на мою ошибку?