簡體   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