В момента изграждам малък мениджър (обучаващ питон), използвайки 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)
(Само като използвам тези четири като пример)
В моя шаблон преминавам през тези четири пина и бих искал да покажа моята DB информация (напр. Описание, състояние и id), затова написах този код:
{% 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 }}
вътре в цикъла.
Може ли някой да хвърли малко светлина върху това каква е моята грешка?