Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 5, 2022 15:42:17

D7size
Зарегистрирован: 2022-03-21
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

jinja2.exceptions.UndefinedError: 'int' is undefined.

Проблема в том что у меня есть массив с названием и ценой когда я его обрабатываю в шаблоне то на тыкаюсь на ошибку что аргумент должен быть строкой :

  {% 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 %}

Что за хрень даже если в словаре ставлю значения в инте все равно шлет и говорит что должно быть str, а строку на строку умножать не хочет

Офлайн

#2 Апрель 5, 2022 20:16:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9818
Репутация: +  852  -
Профиль   Отправить e-mail  

jinja2.exceptions.UndefinedError: 'int' is undefined.

Не надо в шаблоне это делать. Делай это всё в коде до передачи в шаблон. Рано или поздно столкнёшься с тем, что в коде надо будет что-то поменять, а потом, как ебанько, будешь сидеть и менять сотни шаблонов из-за этого. Даже обычная смена имён приведёт к этому, не говоря уже о смене формата чего-нибудь на что-нибудь. Также код можно под юнит-тесты засунуть, в то время как шаблоны надо наугад писать. Так что упрощай шаблоны, насколько это возможно. Не надо в них ничего вычислять.

D7size
  
jinja2.exceptions.UndefinedError
Ты знаешь, Jinja немножко сложнее, чем два притопа три прихлопа. У Jinja свой язык со своими функциями.
https://jinja.palletsprojects.com/en/3.0.x/templates/#list-of-builtin-filters



Отредактировано py.user.next (Апрель 5, 2022 20:18:33)

Офлайн

#3 Апрель 6, 2022 12:13:19

D7size
Зарегистрирован: 2022-03-21
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

jinja2.exceptions.UndefinedError: 'int' is undefined.

Спс за ответ!

     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'}

Офлайн

#4 Апрель 6, 2022 14:46:56

D7size
Зарегистрирован: 2022-03-21
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

jinja2.exceptions.UndefinedError: 'int' is undefined.

Уважаемые сам поерашл, посоветуйте литературу по jinja и фласк на русском чуть более глубокую чем Паул Берри

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version