【问题标题】:How to achieve Django nested expression, or evalute expression inside expression {{ {{ expr }} }}?如何实现 Django 嵌套表达式,或在表达式 {{ {{ expr }} }} 中评估表达式?
【发布时间】:2012-10-06 18:33:57
【问题描述】:

在 python 中,我在 django 模板中传递以下上下文:

{'expr': 'next_expr', 'next_expr': 'value'}

在模板中,我正在尝试打印“值”:

{{ {{ expr }} }}

我知道上面的表达式行不通,但我想实现这样的目标:

{{ {{ expr }} }} ---> {{ next_expr }} ---> 'value'

在 django 中是否有任何方法可以让我获得“价值”?

谢谢!

【问题讨论】:

    标签: google-app-engine django-templates


    【解决方案1】:

    如果我理解正确并且 Python 对象作为 tmp 变量传递:

    tmp = {'expr': 'next_expr', 'next_expr': 'value'}
    

    你可以在 Jinja2 中做到这一点:

    {{tmp[tmp['expr']]}}
    

    在 Django 中,我能find 是这样的,但我认为这不是你想要的

    {% for k, v in tmp.items %} 
      {{k}} - {{v}} |
    {% endfor %}
    

    【讨论】:

    • 当我在模板中写下你的确切表达式时,我得到 TemplateSyntaxError: Could not parse the rest: '[tmp['expr']]' from 'tmp[tmp['expr']]'。
    • @LoveSharma 嗯......在 Jinja2 中运行良好......应该是一样的......stackoverflow.com/a/1724201/8418 :(
    • 提高答案...但不是我正在寻找的确切答案,可能在 django 中是不可能的。所以我实现了自定义标签并且工作正常。谢谢你的努力。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多