[英]How to iterate dictionary to template in Django
如果我打印结果,我有两个完美的循环。 它给了我一个显示名称和值的列表,但我很难在模板中显示它。 它只显示最后的结果。
for u in Performance.objects.raw('SELECT * FROM...')
name = u.last_name + ' ' + u.first_name
for e in Projekt_perf.objects.raw('SELECT stressz_profile.id...')
total = e.total
results = {'name':name, 'total':total}
context = {
'results': results,
'name': name,
'total': total,
}
return render(request, 'performance/list.html', context)`
这是我拿到的字典,还行: {'name': 'Someone01', 'total': 25} {'name': 'Someone02', 'total': 7} {'name': 'Someone03', 'total': 10} {'name': 'Someone04', 'total': 0}
我喜欢在模板中使用上面的字典,我尝试了这些方法,但我没有得到最后一个元素的所有元素。 {% for r in results %} {{ r }} {% endfor %}
{% for r in results %} {{ r.name }} - {{ r.total }} {% endfor %}
我究竟做错了什么?
试试这个代码,你需要在列表中附加所有对象,然后在迭代它之后。 像这样...
final_data = []
total =0
for u in Performance.objects.raw('SELECT * FROM...')
name = u.last_name + ' ' + u.first_name
for e in Projekt_perf.objects.raw('SELECT stressz_profile.id...')
total = e.total
final_data.append({'name':name, 'total':total})
context = {
'results': final_data,
'total': total,
}
return render(request, 'performance/list.html', context)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.