Latest posts on jinja2.exceptions.UndefinedError: 'int' is undefined. topichttp://python.su/forum/topic/41391/2023-07-22T08:40:17+03:00Веб-технологии :: Web :: jinja2.exceptions.UndefinedError: 'int' is undefined.
2023-07-22T08:40:17+03:00jekakeba228261<blockquote><em>D7size</em><br/>акже</blockquote>совсем немного, но хоть что-то по <a href="https://pythoncod.club/topics/jinja/">шаблонам Jinja</a>
Веб-технологии :: Web :: jinja2.exceptions.UndefinedError: 'int' is undefined.
2022-04-06T14:46:56+03:00D7size221339Уважаемые сам поерашл, посоветуйте литературу по jinja и фласк на русском чуть более глубокую чем Паул Берри
Веб-технологии :: Web :: jinja2.exceptions.UndefinedError: 'int' is undefined.
2022-04-06T12:13:19+03:00D7size221332Спс за ответ!<br/><br/><div class="code"><pre> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">request</span><span class="o">.</span><span class="n">form</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="k">if</span> <span class="n">v</span> <span class="ow">and</span> <span class="n">k</span> <span class="o">!=</span> <span class="s1">'магазин'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">k</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> <span class="n">v</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
<span class="n">session</span><span class="o">.</span><span class="n">modified</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">tmp</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span>
<span class="n">session</span><span class="p">[</span><span class="s1">'karzina'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="nb">str</span><span class="p">(</span><span class="n">k</span><span class="p">):</span> <span class="p">{</span><span class="s1">'amount'</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="s1">'coast'</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">price_list</span><span class="p">[</span><span class="n">k</span><span class="p">]),</span> <span class="s1">'total'</span><span class="p">:</span> <span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">price_list</span><span class="p">[</span><span class="n">k</span><span class="p">]))}}</span>
<span class="k">print</span><span class="p">(</span><span class="n">session</span><span class="p">[</span><span class="s1">'karzina'</span><span class="p">])</span>
<span class="k">print</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span>
</pre></div><br/>Добавляет только последние с какого перепуга , что ему не нравиться тупой глюк какой-то епт<br/><br/><div class="code"><pre> <span class="na">МиниБагета 4</span>
<span class="na">МиниЛитовский 4</span>
<span class="na">БатонМолочноОтрубной 4</span>
<span class="na">{'БатонМолочноОтрубной': {'amount': '4', 'coast': '140', 'total': 560}}</span>
<span class="na">{'МиниБагета': '4', 'МиниЛитовский': '4', 'БатонМолочноОтрубной': '4'}</span>
</pre></div>
Веб-технологии :: Web :: jinja2.exceptions.UndefinedError: 'int' is undefined.
2022-04-05T20:16:36+03:00py.user.next221301Не надо в шаблоне это делать. Делай это всё в коде до передачи в шаблон. Рано или поздно столкнёшься с тем, что в коде надо будет что-то поменять, а потом, как ебанько, будешь сидеть и менять сотни шаблонов из-за этого. Даже обычная смена имён приведёт к этому, не говоря уже о смене формата чего-нибудь на что-нибудь. Также код можно под юнит-тесты засунуть, в то время как шаблоны надо наугад писать. Так что упрощай шаблоны, насколько это возможно. Не надо в них ничего вычислять.<br/><br/><blockquote><em>D7size</em><br/><div class="code"><pre>
<span class="n">jinja2</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">UndefinedError</span>
</pre></div></blockquote>Ты знаешь, Jinja немножко сложнее, чем два притопа три прихлопа. У Jinja свой язык со своими функциями.<br/><a href="https://jinja.palletsprojects.com/en/3.0.x/templates/#list-of-builtin-filters">https://jinja.palletsprojects.com/en/3.0.x/templates/#list-of-builtin-filters</a>
Веб-технологии :: Web :: jinja2.exceptions.UndefinedError: 'int' is undefined.
2022-04-05T15:42:17+03:00D7size221295Проблема в том что у меня есть массив с названием и ценой когда я его обрабатываю в шаблоне то на тыкаюсь на ошибку что аргумент должен быть строкой :<br/><br/><div class="code"><pre> <span class="p">{</span><span class="o">%</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">tbl</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="o">%</span><span class="p">}</span>
<span class="p">{{</span> <span class="n">key</span> <span class="o">+</span> <span class="s2">" : "</span> <span class="o">+</span> <span class="n">value</span> <span class="o">+</span> <span class="s2">" = "</span> <span class="o">+</span> <span class="n">tbn</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="p">}}</span> <span class="o"><</span><span class="n">br</span> <span class="o">/></span> <span class="p">{</span><span class="o">%</span> <span class="n">endfor</span> <span class="o">%</span><span class="p">}</span>
</pre></div><br/>ошибка <br/><br/><div class="code"><pre> jinja2.exceptions.UndefinedError: 'int' is undefined
</pre></div><br/>А если вот так то у него все нормально<br/><br/><div class="code"><pre> <span class="p">{</span><span class="o">%</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">tbl</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="o">%</span><span class="p">}</span>
<span class="p">{{</span> <span class="n">key</span> <span class="o">+</span> <span class="s2">" : "</span> <span class="o">+</span> <span class="n">value</span> <span class="o">+</span> <span class="s2">" = "</span> <span class="o">+</span> <span class="n">tbn</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">*</span> <span class="mi">2</span> <span class="p">}}</span> <span class="o"><</span><span class="n">br</span> <span class="o">/></span> <span class="p">{</span><span class="o">%</span> <span class="n">endfor</span> <span class="o">%</span><span class="p">}</span>
</pre></div><br/>Что за хрень даже если в словаре ставлю значения в инте все равно шлет и говорит что должно быть str, а строку на строку умножать не хочет