【问题标题】:dict zip key values django templatedict zip 键值 django 模板
【发布时间】:2019-01-08 20:55:27
【问题描述】:

2 个 dict 值的配对。它有效。

pair = dict(zip(hide_dict, fp_dict))
    context = {
        'instance': project,
        'user': user,
        'pair': pair,
    }

我的 django html 模板部分,出现错误。

异常类型:ValueError 异常值:需要 2 个值来解压 在for循环中;得到了 6 个。

我做错了 for 循环部分吗?早些时候我尝试过配对,我单独尝试过,效果很好。现在配对显示错误在上下文渲染中,但我看不到在哪里。

 {% for fp_dict.items,hide_dict.items in pair %}
    {% for key, values in hide_dict.items %}
            {%if values == 1%}
            <div style="display:none">
                {% elif  values == 0 %}
                <div>
                    {% endif %}{% endfor %}
             <div class="row">
                <div class="col-sm-12">
                    <div class="panel panel-default">
                        <div class="panel-body">
                            <table class="table">
                                <thead>
                                    <tr>
                                        <th>FP Items</th>
                                    </tr>
                                </thead>
                                  <tbody>
                                        <tr>
                                {% for key, values in fp_dict.items %}
                                {% for instance in values %}
                                            <td></td>
                                    <td>{{ instance.FP_Item }}</td>
                                                </a>
                                            </td> -->
                                        </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
        </div>
{% endfor %}

配对前视图中的字典值: 打印(隐藏字典) {'hide0': 1, 'hide1': 1}

打印(fp_dict)

{'fp_list_0': <QuerySet [<FP: olmadan çalışacaktır. - Check - OK - Check - Check - OK - Check - Check - Check>, <FP: depolanabilecek. - Check - OK - Check - Check - OK - Check - Check - Check>, <FP: yönetilebilecektir. - Check - OK - Check - Check - OK - Check - Check
- Check>, '...(remaining elements truncated)...']>}

【问题讨论】:

  • 我认为第一行应该删除.items。所以:{% for fp_dict, hide_dict in pair %} 因为这是一个变量声明,而不是获取属性的空间。

标签: django dictionary zip keyvaluepair


【解决方案1】:

看起来你想迭代pair items,所以你需要使用pair.items

{% for fp_dict, hide_dict in pair.items %}

【讨论】:

  • 是的,可以修复错误,但我无法在表中获取任何值,让我进一步检查
  • 第二行正确吗? {% for key, values in hide_dict.items %} 最后有项目。没有它我尝试并得到错误
  • @ahmet 你不能做hide_dict.items 因为hide_dictfp_dict 实际上不是字典。在这行代码之后pair = dict(zip(hide_dict, fp_dict)) 对是简单的字典。所以它的项目不是字典本身。
  • 好的,我删除了这些项目,现在又出现了一个错误。异常类型:ValueError 异常值:需要 2 个值才能在 for 循环中解包;得到 1. 我是否还需要更改为 {% for values in hide_dict %} 所以需要删除前面的键,因为我只使用值,但没有任何改变
  • @ahmet hide_dict 事件可能不可迭代。你能分享一下hide_dictfp_dict 的价值观吗?您希望pair 具有什么价值?
猜你喜欢
  • 1970-01-01
  • 2016-01-16
  • 2019-11-24
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多