在Django模板中,如何访问其键具有空格的dict元素的属性?

时间:2013-12-10 17:29:09

标签: python django django-templates

我的模板收到了dict个表单:

forms = {'Cholera': CholeraForm(), 'Foot And Mouth Disease': FootMouthDiseaseForm()}

计划是在select表单元素中显示每个键,并根据所选的值,我将显示正确的表单。访问密钥中包含空格的dict元素是一个非常简单的问题,由模板标记解决:

@register.filter
def get(value, arg):
    """
            Template tag used for getting the value out of a dict when the key has whitespace.
    """
    return value[arg]

这允许我得到这样的表格:

{{ forms|get:'Foot And Mouth Disease' }}

但是,我遇到的一个问题是我无法访问特定的表单元素。我希望能够做到这一点:

{{ forms|get:'Foot And Mouth Disease'.element }}

或者这个:

{{ (forms|get:'Foot And Mouth Disease').element }}

但是都不行。我在每个上面都得到了TemplateSyntaxErrors。如何访问以这种方式访问​​的表单的特定表单元素?

1 个答案:

答案 0 :(得分:1)

您可以使用with

{{ with forms|get:'Foot And Mouth Disease' as item }}
{{ item.element }}
{{ endwith }}

但更好的方法可能是将过滤器更改为赋值标记,直接将该项添加到上下文中。