Django 模板中带空格的字典键

12 投票
3 回答
5732 浏览
提问于 2025-04-15 17:02

我想在我的 view.py 中把一个字典展示到 HTML 模板里,像这样:

test = { 'works': True, 'this fails':False }

然后在模板里:

这样做没有问题:

{{ test.works }}

但是,如果字典的键中有空格,比如 'this fails',就会出问题:

{{ test.this fails }}

我收到了这个错误:

无法解析剩余部分:' fails' 来自 'this fails'

我该如何解决这个问题呢?因为我不是在填充模型,所以我不能改变字典键的空格。

3 个回答

-4

我觉得这看起来不太对。你能做以下这些吗?

{{ test['works'] }} 
{{ test['this fails'] }}

这就是在Python中访问字典的常见方式。

2

我不知道在Django中有没有标准的解决方案。我觉得可以通过一个模板过滤器来实现。

你可能会对这篇文章感兴趣:http://push.cx/2007/django-template-tag-for-dictionary-access(作者提到的是模板标签,但实际上它是一个模板过滤器)

希望这对你有帮助。

18

你想要的过滤器大概是这样的:

@register.filter(name='getkey')
def getkey(value, arg):
    return value[arg]

然后和下面这个一起使用:

{{test|getkey:'this works'}}

来源: http://www.bhphp.com/blog4.php/2009/08/17/django-templates-and-dictionaries

撰写回答