我正在多个嵌套的dicts中收集数据并将它们传递给我的模板。我写了一个简单的过滤器,用键来获取dict中的数据:
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
在我的模板中,我正在访问数据:
{% for location_type_id, location_type_name in location_types.items %}
{% with disctrict=disctricts|get_item:location_type_id %}
...
{% endwith %}
{% endfor %}
当我使用{{debug}}时,我看到:
{'districts': {5: {6: 'Friedrichshain'}, 7: {7: 'Kreuzberg', 8: 'Charlottenburg'}},
'location_types': {5: 'Bar', 7: '5'}}
但我收到错误:'str'对象没有属性'get'。当打印过滤器的参数时,我得到一个空字符串传递给filter而不是dict。
答案 0 :(得分:1)
你有一个错字。变量名称为districts
,但您在模板中使用disctricts
。
答案 1 :(得分:1)
模板中有拼写错误,可能会导致错误:
{% with disctrict=disctricts|get_item:location_type_id %}
应为{% with disctrict=districts|get_item:location_type_id %}