如何在 django 模板中迭代字典的列表值

Posted

技术标签:

【中文标题】如何在 django 模板中迭代字典的列表值【英文标题】:How to iterate over a list value of a dictionary in django template 【发布时间】:2018-07-31 16:55:57 【问题描述】:

我有一本字典,其中值在列表中


    'Fees': ['88000', '88000'],
    'ROll Number': ['I0', 'I1'],
    'Mark': [10, 10]

所以我试图在表中插入这些数据,所以我的 Django 模板是

  <table>
      <thead>
        <tr>
        % for k, v in loan_bank_info.items %
            <th> k </th>
        % endfor %
        </tr>
      </thead>
      <tbody>
      <tr>
      % for k, value in loan_bank_info.items %
        % for v in value %  
          <td> v </td>
          % endfor %
      % endfor %
      </tr>
    </tbody>
  </table>

但表中的值打印如下,

  Fees          ROll Number     Mark
  88000 88000    I0 I1           10 10

但我想要的是-

Fees            ROll Number     Mark
  88000          I0             10 
  88000          I1             10

如何在 Django 模板中迭代列表值

【问题讨论】:

我认为您需要将&lt;tr&gt;&lt;/tr&gt; 标签放在外部for 循环内 【参考方案1】:

您可以遍历列表。如下所示

<tr>
      % for k, value in loan_bank_info.items %
        % for v in value %
            % for i in v % 
              <td> i </td>
            % endfor %
          % endfor %
      % endfor %
      </tr>

【讨论】:

TypeError: 'int' 对象不可迭代 这就是他们已经在做的事情。添加另一个级别的迭代现在将尝试迭代整数值本身。我无法测试,但我认为问题至少部分是由于&lt;tr&gt; 在最外层循环之外,但是没有理由从 OP 已经拥有的另一个内部循环中获得

以上是关于如何在 django 模板中迭代字典的列表值的主要内容,如果未能解决你的问题,请参考以下文章

如何判断一个值是 Django 模板中的字符串还是列表?

Django迭代列表中的字典并在模板中显示数据

字典值不能通过在 django 模板中使用它们的对应键来迭代[重复]

如何在 Django 模板中访问字典列表

字典值无法通过在django模板中使用相应的键进行迭代[重复]

如何在django html模板中迭代列表[重复]