Язык шаблонов Django - PullRequest
       28

Язык шаблонов Django

1 голос
/ 19 сентября 2019

«dishList» - это список объекта «dish», а объект «dish» содержит поле «id».Например:

dishList = [dish1, dish2, dish3, ...]
dish1.id = 1

"dishCount" - это тип словаря в python, который включает число для каждого блюда.Например:

dishCount = { dish1.id: 0, dish2.id: 0, ...}

Моя проблема заключается в том, что в этом цикле for:

{% for d in dishList %}

Как я могу оценить количество блюд "d"?Я хочу использовать {{ dishCount.(d.id) }}, но он не работает.

Не удалось разобрать остаток: '(d.id)' из 'dishCount. (D.id)'

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

Как я могу оценить количество блюд "d"?

Языки шаблонов Django сознательно ограничены, чтобы не допускать подписку и вызовы функций (с параметрами),Вы, строго говоря, можете использовать для этого шаблонный фильтр или использовать механизм шаблонов, такой как jinja .

Причина, по которой он ограниченболее интересно: оно направлено на то, чтобы запретить пользователям писать бизнес-логику в шаблонах.Обычно лучше написать это в представлении.

Таким образом, вы можете добавить атрибут к вашим блюдам, например:

dishList = [dish1, dish2, dish3]
dishCount = { dish1.id: 0, dish2.id: 0}
for dish in dishList:
    dish.<b>count</b> = dishCount[dish.id]

Затем вы можете сделать это с помощью:

{% for d in dishList %}
    {{ d.<b>count</b> }}
{% endfor %}
0 голосов
/ 19 сентября 2019

Вы можете создать шаблонный шаблон или использовать цикл for в dict.items () в dict и получить ключ элемента и значение

Шаблон Django, как искать значение словаря с помощьюпеременная

Вы можете узнать больше здесь

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