繁体   English   中英

从Django中的视图在HTML页面上显示列表

[英]Displaying list on HTML page from view in Django

我的views.py中有一个列表,该列表通过render函数发送到HTML页面,并在该页面上打印出来。 问题是,虽然我发送的所有其他列表都打印在HTML页面上,但是我要发送的这两个列表却没有。

app / views.py

alttrue = []
altfalse = []
alttrue, altfalse = altCheck(soup)
results = { 'alttrue' : alttrue,
            'altfalse' : altfalse,
          }
render(context,'app/result.html', results)

现在altCheck是一个函数,它返回两个列表,其中至少有一个具有值,这是肯定的。 在我的result.html中,

results.html

<h5>Alt pass results</h5>
{% for tag in alttrue %}
<p>{{ tag }}</p>
{% endfor %}
<h5>Alt fail results</h5>
{% for tag in altfalse %}
<p>{{ tag }} </p>
{% endfor %}

问题是在列表中运行一个for循环并尝试打印它会返回一个空列表([])。 但是,如果我尝试这样打印

<p>{{ alttrue }}</p>
<p>{{ altfalse }}</p>

工作正常。 它打印列表。 只是,迭代列表并打印出变量不起作用。

这是怎么回事:

alttrue = []
altfalse = []
alttrue, altfalse = altCheck(soup)
results = { 'alttrue' : altpass,
            'altfalse' : altfail,
          }
render(context,'app/result.html', results)

在结果dict中,下引号(key)中的变量假定为上下文变量的名称。 如下所示

alttrue = []
altfalse = []
alttrue, altfalse = altCheck(soup)
results = { 'altpass' : alttrue ,
            'altfail' : altfalse ,
          }
render(context,'app/result.html', results)

template.html

{% for x in altpass %}
{{x}}
{% endfor %}

{% for x in altfail %}
{{x}}
{% endfor %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM