【发布时间】:2021-04-16 05:49:35
【问题描述】:
我的看法:
def dashboard(request):
buses = get_bus_of_substation(request)
data = []
key = 1
for bus in buses:
for i in range(25):
dt = datetime.datetime.today()
tdelta = datetime.timedelta(hours=-i)
dt = dt + tdelta
date_time = dt.strftime('%Y-%m-%d %H:00:00')
# print(date_time)
sub_equip_id = bus.substation_equipment_id
volt_value = get_voltage(date_time, sub_equip_id)
# for volt in volt_value:
# print(volt.val)
if volt_value:
data.append(dt.strftime('%Y-%m-%d'))
data.append(dt.strftime('%H:00:00'))
for volt in volt_value:
data.append(volt.val)
break
if not volt_value:
data.append('No Data')
data.append('No Data')
data.append('No Data')
my_iter = iter(data)
grouped_list = zip(my_iter, my_iter, my_iter)
transformers = get_transformer_of_substation(request)
return render(request, 'dashboard.html', context={'buses': buses, 'transformers': transformers, 'grouped_list': grouped_list})
我的模板:
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Bus Name</th>
<th scope="col">Date</th>
<th scope="col">Hour</th>
<th scope="col">Voltage(kV)</th>
</tr>
</thead>
<tbody>
{% for bus in buses %}
<tr class="table-active">
<td>{{ bus.bus_name }}</td>
{% for a,b,c in grouped_list %}
<td>{{ a }}</td>
<td>{{ b }}</td>
<td>{{ c }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
我想在第一行打印前三个 list_values,在下一行打印下三个 list_values,依此类推。但是 grouped_list 将所有值打印在一行中。请建议我该怎么做
【问题讨论】:
-
如果它的键只是 1,2,3,为什么你的字典是字典...使用 list 代替...
-
我可以像字典一样在 django 模板中加载列表吗?以及如何访问模板内的列表?
-
{% for object in my_list %} {{ object }} {% endfor %}... 请展示你的观点。 -
好的,列表会是更好的选择,我明白。但是使用列表,我如何以我在问题中提出的类似方式进行迭代?
-
您的用例是否像有一个公共汽车列表,并且您想为他们呈现他们的
data?结果是XY problem。这就是为什么你应该正确地说明你的问题到底是什么。
标签: python django loops dictionary templates