2

我想将一个变量(标识符)与一个字符串(“charge”)连接起来,然后将其用作嵌套 dict(attributes)的键,这是我当前失败的代码:

attributes|valuebykey:"charge"|add:identifier

我想我需要类似的东西(基本上改变执行顺序):

attributes|valuebykey:("charge"|add:identifier)

但是这种语法似乎不起作用

过滤器:(只是从字典中获取一个值)

@register.filter
def valuebykey(d, k):
    try:
        ret = d.get(k)
        if ret is None:
            ret = ''
    except:
        ret = ''
    return ret

知道如何更改执行顺序,或者有一个带有 3 个单独参数的过滤器吗?或任何其他方式我可以在嵌套字典中找到一个值,其键是一个 var 和一个字符串的连接?

谢谢!

4

1 回答 1

6

你可以这样做:

{% with key="charge"|add:identifier %}
    {{ attributes|valuebykey:key }}
{% endwith %}
于 2013-11-14T12:40:25.993 回答