我有一个返回字典的视图。我在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有更多经验的人可以指出我正确的方向
任何帮助都将非常感激
答案 0 :(得分:3)
您的字典项目没有count
属性。
但我不知道为什么你认为你需要这个过滤器。你有一个简单的字典,而不是一个复杂的嵌套数据结构;如果您只想要每个元素的键(名称)和值(计数),只需使用items
进行迭代:
{% for name, count in talks.items() %}
<li>{{ name }} - {{ count }}</li>
{% endfor %}