【问题标题】:Accessing a dict element who's key begins with an @访问 dict 元素的键以 @ 开头
【发布时间】:2012-01-28 05:18:23
【问题描述】:

我有一个 dict 传递给我的模板,一些元素名称/键以 @ 符号开头,即: { '@id': 123, '@name': '亚历克斯' }

有没有一种好的/干净的方式可以访问这些元素?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    自定义模板标签是访问带有特殊字符的字典键的唯一方法。 this question 的答案就是一个很好的例子。

    对于懒人:

    from django import template
    register = template.Library()
    
    @register.filter
    def dictKeyLookup(the_dict, key):
        # Try to fetch from the dict, and if it's not found return an empty string.
        return the_dict.get(key, '')
    

    你会这样使用:

    {% dictKeyLookup your_dict "@blarg!#$^&*" %}
    

    作为家庭作业,您还可以将其转换为一个简单的过滤器,这将为您提供如下语法:

    {{ your_dict|getkey:"@blarg!@#$%" }}
    

    【讨论】:

    • 谢谢。老实说,我期待着同样多,但我对 django 太陌生了,我不确定这是否只是我错过的一些语法。我已经继续并实现了一个过滤器,看起来仍然相当整洁。哦,过滤器不应该是{{ dict|getkey:"name" }}吗?而不是{% ... %}
    猜你喜欢
    • 2022-12-06
    • 1970-01-01
    • 2022-11-30
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多