如何使用Django将词典中的项目从最高值打印到最低值?

时间:2017-06-13 03:15:43

标签: python html django

我想做类似以下的事情,但不知道如何使它与我为我的程序编写的HTML兼容。

{% for u in sorted(dictionary, key=dictionary.get, reverse=True) %}
    {{ u|safe }}<br>
    Priority level <b>{{ dictionary[u] }}</b><br>
    ---<br>
{% endfor %}

我也不反对在views.py文件中这样做。理想情况下,我也只想显示前20个左右的结果。

3 个答案:

答案 0 :(得分:1)

在视图中对您进行排序,并将顺序和限制反转为20:

return render(request, 'patrec.html', {
    'siglist': sorted(siglist.iteritems(), reverse=True)[:20], 
    'best_match': best_match,
})

然后访问模板中的已排序项:

{% for tup in siglist %}
    <p> Key is {{ tup[0] }} </p>
    <p> Value is {{ tup[1] }} </p>
{% endfor %}

答案 1 :(得分:0)

您可以尝试使用内置的dictsort对字典进行排序https://docs.djangoproject.com/es/1.10/ref/templates/builtins/#dictsort

答案 2 :(得分:0)

我尝试了无处不在的一切。我想出了以下内容 -

sort = []
for u in sorted(siglist, key=siglist.get, reverse=True)[:25]:
    sort.append([u, str(siglist[u])])

return render(request, 'patrec.html', {
    'siglist': sort, 
    'best_match': best_match,
})

然后将以下内容放在HTML中 -

{% for u in siglist %}
    {{ u.0 }}<br>
    {{ u.1 }}<br><br>
{% endfor %}