我有一个返回字典的 View 。我搜索了一下,发现: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 方面有更多经验的人可以为我指明正确的方向
任何帮助将不胜感激
最佳答案
您的字典项目没有 count
属性。
但我不知道你为什么认为你需要这个过滤器。你有一个简单的字典,而不是一个复杂的嵌套数据结构;如果您只需要每个元素的键(名称)和值(计数),只需使用 items
进行迭代:
{% for name, count in talks.items() %}
<li>{{ name }} - {{ count }}</li>
{% endfor %}
关于python - Django 模板中的字典 - 过滤器使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32467127/