Django模板过滤执行顺序

时间:2013-11-14 11:22:06

标签: django templates filter

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

attributes|valuebykey:"charge"|add:identifier

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

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

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

flter :(只是从字典中得到一个值)

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

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

谢谢!

1 个答案:

答案 0 :(得分:4)

你可以这样做:

{% with key="charge"|add:identifier %}
    {{ attributes|valuebykey:key }}
{% endwith %}