Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django中迭代这个列表字典?_Django_Django Templates - Fatal编程技术网

如何在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 %}