如何在Django中迭代这个列表字典?
我有下面的字典,里面有物品清单如何在Django中迭代这个列表字典?,django,django-templates,Django,Django Templates,我有下面的字典,里面有物品清单 args = {'Qtag': [ [<Question: Question object>, <Tags: Tags object>], [<Question: Question object>, <Tags: Tags object>] ] } 在main.html中,我尝试以下面的方式进
args = {'Qtag': [
[<Question: Question object>, <Tags: Tags object>],
[<Question: Question object>, <Tags: Tags object>]
]
}
在main.html中,我尝试以下面的方式进行迭代
{%if Qtag %}
{% for item_list in Qtag %}
{% for item in item_list %}
</h4> <b> Question</b>:{{item.qid}} {{item.title}} </h4><br/>
</h4> {{item.question}} </h4>
<button name="tag" type="submit" value="tagname"> {{item.tagname}} </button>
{% endfor %}
{% endfor %}
{% endif %}
{%if Qtag%}
{Qtag%}中的项目列表的%
{项列表%中的项的百分比}
问题:{{item.qid}{{{item.title}}
{{项目.问题}
{{item.tagname}
{%endfor%}
{%endfor%}
{%endif%}
当我在main.html中尝试上述方法时,我在屏幕上显示了4次内容。这里,由问题对象列表和标记对象列表组成的第一个列表对应于一个问题,另一个问题也类似,因此在屏幕中,我只希望显示两个问题及其相应的标记。我无法正确地迭代以获得所需的内容。任何关于如何实现这一点的想法
谢谢。我不确定
args=dict(Qtag=Questag)
在您的代码中是什么意思(因为我不知道Questag
是什么)。我也不知道你的标签是否合适(我想是的)。您的HTML看起来格式也不正确(例如,我没有看到开头h4
)
这就是我要做的,得到和你想要的相似的东西。你可以做这个
{% if Qtag %}
{% for question, tags in Qtag %}
{# First put in the question header #}
<h4>Question : {{question.qid}} {{question.title}} </h4>
{# Then the question body #}
<p>
{{question.question}}
</p>
{# Now a tag list #}
<ul>
{% for tag in tags %}
<li>
<button name = "tag" type="submit" value="{{tag.name}}">
{{tag.name}}
</button>
</li>
{% endfor %}
</ul>
{% endfor %}
{% endif %}
{%if Qtag%}
{%表示问题,标记位于Qtag%}
{#首先放入问题标题#}
问题:{{问题.qid}{{问题.标题}
{然后是问题主体}
{{问题.问题}
{现在是标记列表}
{标记%中的标记的%s}
-
{{tag.name}
{%endfor%}
{%endfor%}
{%endif%}
您最初的解决方案是以二次方式对列表进行迭代(每次外部迭代对列表进行一次迭代),这就是为什么您会看到打印4次的原因。您好,谢谢。我得到了答案。我尝试了item.0.qid,即item.0用于访问问题对象,item.1用于访问标记对象,并删除了第二个for循环{item_list%}中item的%for item。
{% if Qtag %}
{% for question, tags in Qtag %}
{# First put in the question header #}
<h4>Question : {{question.qid}} {{question.title}} </h4>
{# Then the question body #}
<p>
{{question.question}}
</p>
{# Now a tag list #}
<ul>
{% for tag in tags %}
<li>
<button name = "tag" type="submit" value="{{tag.name}}">
{{tag.name}}
</button>
</li>
{% endfor %}
</ul>
{% endfor %}
{% endif %}