Форум сайта python.su
Проблема в том что у меня есть массив с названием и ценой когда я его обрабатываю в шаблоне то на тыкаюсь на ошибку что аргумент должен быть строкой :
{% for key, value in tbl.items() %} {{ key + " : " + value + " = " + tbn[key] * int(value) }} <br /> {% endfor %}
jinja2.exceptions.UndefinedError: 'int' is undefined
{% for key, value in tbl.items() %} {{ key + " : " + value + " = " + tbn[key] * 2 }} <br /> {% endfor %}
Офлайн
Не надо в шаблоне это делать. Делай это всё в коде до передачи в шаблон. Рано или поздно столкнёшься с тем, что в коде надо будет что-то поменять, а потом, как ебанько, будешь сидеть и менять сотни шаблонов из-за этого. Даже обычная смена имён приведёт к этому, не говоря уже о смене формата чего-нибудь на что-нибудь. Также код можно под юнит-тесты засунуть, в то время как шаблоны надо наугад писать. Так что упрощай шаблоны, насколько это возможно. Не надо в них ничего вычислять.
D7sizeТы знаешь, Jinja немножко сложнее, чем два притопа три прихлопа. У Jinja свой язык со своими функциями.jinja2.exceptions.UndefinedError
Отредактировано py.user.next (Апрель 5, 2022 20:18:33)
Офлайн
Спс за ответ!
for k, v in request.form.items(): if v and k != 'магазин': print(k + ' ' + v + '\n') session.modified = True tmp[k] = v session['karzina'] = {str(k): {'amount': str(v), 'coast': str(price_list[k]), 'total': (int(v) * int(price_list[k]))}} print(session['karzina']) print(tmp)
МиниБагета 4 МиниЛитовский 4 БатонМолочноОтрубной 4 {'БатонМолочноОтрубной': {'amount': '4', 'coast': '140', 'total': 560}} {'МиниБагета': '4', 'МиниЛитовский': '4', 'БатонМолочноОтрубной': '4'}
Офлайн
Уважаемые сам поерашл, посоветуйте литературу по jinja и фласк на русском чуть более глубокую чем Паул Берри
Офлайн