繁体   English   中英

如何在 Django 中将字典迭代到模板

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM