Jinja2 ValueError: too many values to unpack (expected 2)
Jinja2 ValueError: too many values to unpack (expected 2)
{%for feed,tim in feeds,time %}
{% set nickname = feed.nick %}
{% set like = feed.like %}
{% set text = feed.text %}
{% set today = tim %}
{% set postid = feed.postid %}
{% set photo = feed.photo %}
{% set profile = feed.profile %}
{%for cmt in cmts %}
{% set nickname = cmt.nick %}
{% set cmt = cmt.cmt %}
{% set cmtid = cmt.cmtid %}
{% if cmtid == postid %}
<p class="description"><span>{{nickname}} </span> {{cmt}}</p>
{% endif %}
{% endfor %}
<div class="comment-wrapper">
<img src="../static/images/smile.PNG" class="icon" alt="">
<input type="text" class="comment-box" id='cmt' placeholder="Add a comment">
<button class="comment-btn" onclick=cmt_write()>post</button>
</div>
</div>
</div>
{% endfor %}
在jinja2中用一个列表执行for语句成功,
但我们必须使用两个列表。
我尝试在 jinja2 中使用 2 个列表(提要、时间)
如何从 jinja2 到 jinja2 for 循环
有没有办法在 jinja2 中使用两个列表?
如果您想遍历两个列表(相同长度)的组合列表,您必须对它们应用 zip
函数。例如:
def view_function():
feeds = [...]
time = [...]
feeds_and_time = zip(feeds, time)
# Looks like this: [('feed_1', 'time_1'), ('feed_2', 'time_2')]
然后将这个新的 feeds_and_time
变量传递给渲染函数。并在模板中修改循环:
{% for feed,tim in feeds_and_time %}
{%for feed,tim in feeds,time %}
{% set nickname = feed.nick %}
{% set like = feed.like %}
{% set text = feed.text %}
{% set today = tim %}
{% set postid = feed.postid %}
{% set photo = feed.photo %}
{% set profile = feed.profile %}
{%for cmt in cmts %}
{% set nickname = cmt.nick %}
{% set cmt = cmt.cmt %}
{% set cmtid = cmt.cmtid %}
{% if cmtid == postid %}
<p class="description"><span>{{nickname}} </span> {{cmt}}</p>
{% endif %}
{% endfor %}
<div class="comment-wrapper">
<img src="../static/images/smile.PNG" class="icon" alt="">
<input type="text" class="comment-box" id='cmt' placeholder="Add a comment">
<button class="comment-btn" onclick=cmt_write()>post</button>
</div>
</div>
</div>
{% endfor %}
在jinja2中用一个列表执行for语句成功, 但我们必须使用两个列表。
我尝试在 jinja2 中使用 2 个列表(提要、时间)
如何从 jinja2 到 jinja2 for 循环
有没有办法在 jinja2 中使用两个列表?
如果您想遍历两个列表(相同长度)的组合列表,您必须对它们应用 zip
函数。例如:
def view_function():
feeds = [...]
time = [...]
feeds_and_time = zip(feeds, time)
# Looks like this: [('feed_1', 'time_1'), ('feed_2', 'time_2')]
然后将这个新的 feeds_and_time
变量传递给渲染函数。并在模板中修改循环:
{% for feed,tim in feeds_and_time %}