python - 从 django 渲染中显示 html 中的字典

标签 python html django

我正在尝试将一些数据(从 django View 作为字典输出)显示到 html 可折叠 div(来自 bootstrap3)中。

例如,我将对象“数据”放入我的模板中,该模板具有以下结构:

group value
-----------
A      1
A      2
A      3
B      1
B      2

我知道我可以轻松地遍历该对象。例如

{% for i in data %}
{{i.group}}

但是,我想要做的是能够使用“组”作为可折叠项中的父项,并将项目作为“值”。 类似的东西

{% for i in data %}
<div class="panel-group">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
            <a data-toggle="collapse" href="#{{ i.group }}">{{ i.group }}</a>
            </h4>
            </div>
            <div id="{{ i.group }}" class="panel-collapse collapse">
                <ul class="list-group" style="margin-left:30px">
                <div class="row">
                    <li class="list-group-item">{{ i.value }}</li>
                </div>
                </ul>
            </div>
        </div>
    </div> 
{% endfor %}
</div>

正如您所看到的,问题是,如果我按照上面的方式执行此操作,它将为非唯一的“组”值创建多个父类别。

最佳答案

首先,我们将数据按组进行分组,然后将其发送到模板:

from itertools import groupby
grouped = groupby(data, key=lambda _: _.group)

然后我们稍微修改模板以迭代组和值:

{% for group, values in grouped %}
<div class="panel-group">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
            <a data-toggle="collapse" href="#{{ group }}">{{ group }}</a>
            </h4>
            </div>
            <div id="{{ group }}" class="panel-collapse collapse">
                <ul class="list-group" style="margin-left:30px">
                {% for i in values %}
                    <div class="row">
                        <li class="list-group-item">{{ i.value }}</li>
                    </div>
                {% endfor %}
                </ul>
            </div>
        </div>
    </div> 
{% endfor %}
</div>

在每次迭代中,组将是不同的,并且值是一个迭代器,其中原始数据对应于每个不同的组。

这将为每个组创建单个标签,并为每个组内的每个值创建单独的条目。

关于python - 从 django 渲染中显示 html 中的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53917611/

相关文章:

javascript - 我可以应用显示 : flex to a parent and not to a specific child? 吗

asp.net - Python Django 与 ASP.NET MVC

python - 从模板集命名变量调用 Django 方法。这怎么可能?

django - 在容器中部署 Django + Vuejs (AWS Elastic Beanstalk)

python - 基于多个级别 1 列的子集多索引 df

python - 导入 pyo 时出现 undefined symbol

python - Django 民意调查教程 在应用程序民意调查中未检测到任何更改

python - 如何在 Python 的函数文档字符串中指定多个返回类型?

javascript - HTML:name 和 id 属性总是可以使用相同的标识符吗?

javascript - 如何在移动浏览器上获取 pageYoffset