Django模板中的字典 - 过滤用法

时间:2015-09-08 20:58:53

标签: python django dictionary

我有一个返回字典的视图。我在SO附近搜索并发现:Django template how to look up a dictionary value with a variable

这是我观点的回复陈述:

return render(request, 'App/index.html', context={'talks': word_count})

我在django中很新,所以我想这就是为什么我没有注意到这里的错误。上面提到的问题的答案是这个,创建一个过滤器并将其加载到模板中,好吧,这是过滤器:

from django.template.defaulttags import register

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

以下是我以错误方式使用它的地方:

<ul>
    {% for talk in talks %}
        <li>{{  talks|get_item:talk.count  }}</li>
    {% endfor %}
</ul>

这是我的字典:

{' - Nacho:': 1211, ' - Pato:': 1950, ' - Nicolas:': 1871, '}

我创造它的方式就是这个:

lista = {}
for line in lines:
            if user in line:
                count += 1
lista[user] = count
这很简单。我遇到的错误就是这个:

All the elements appear like this:

. None
. None
. None

不知道如何使用过滤器使得很难解决这个问题 也许在django有更多经验的人可以指出我正确的方向

任何帮助都将非常感激

1 个答案:

答案 0 :(得分:3)

您的字典项目没有count属性。

但我不知道为什么你认为你需要这个过滤器。你有一个简单的字典,而不是一个复杂的嵌套数据结构;如果您只想要每个元素的键(名称)和值(计数),只需使用items进行迭代:

{% for name, count in talks.items() %}
    <li>{{ name }} - {{ count }}</li>
{% endfor %}