【发布时间】:2016-10-14 17:52:16
【问题描述】:
我有汽车数据,我希望它们显示在 Bootstraps 列表组中。问题是我希望一个汽车品牌只显示一次。
{u'cars': [{u'brand': u'Ford', u'model': u'Focus'}, {u'brand': u'u'Ford', u'model': u'Fiesta'}, {u'brand': u'u'Toyota', u'model': u'Hilux'}]
我在views.py中附加到列表汽车:
for i in readable_json["cars"]:
cars.append({
'brand': i['brand'],
'model': i['model'],
})
所以,在本例中,我希望在 Bootstrap 列表组中显示如下:http://www.bootply.com/XEnAquIInD
不喜欢这样: http://www.bootply.com/2YX7PgB1ch
问题出现在 Django 模板中。当我在模板中循环汽车时,我需要在 HTML 中为列表项设置不同的数据父 ID。另外,我如何才能检查显示的汽车品牌不超过一次?
<div id="MainMenu">
<div class="list-group panel">
<div href="#demo" class="list-group-item list-group-item-success" data-parent="#MainMenu">Laitteet</div>
<div class="collapse in" id="demo">
{% for car in cars %}
<a href="#{{ ??? }}" class="list-group-item" data-toggle="collapse" data-parent="#{{ ??? }}">{{ car.brand }} <i class="fa fa-caret-down"></i></a>
<div class="collapse list-group-submenu" id="{{ ??? }}">
<a href="#" class="list-group-item" data-parent="#{{ ??? }}">{{ car.model }}</a>
</div>
{% endfor %}
</div>
</div>
</div>
【问题讨论】:
-
您不应该执行诸如检查模板中的唯一性之类的逻辑-您需要在视图中执行此操作并在将数据传递给模板之前对其进行过滤。然后添加唯一 ID 变得简单。
-
我应该做两个列表吗?一个用于汽车,一个用于 ID:s?
-
没有。这部分取决于您的数据来自哪里——它在源头是否有唯一的 ID(例如,数据库 ID?)。如果没有,您可以slugify 一个独特的字段,例如汽车名称。
-
这看起来不错。我仍然无法弄清楚我应该如何以可以在列表中正确获取数据的形式将数据从视图获取到模板。
标签: python django twitter-bootstrap django-templates