我的模板收到了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。如何访问以这种方式访问的表单的特定表单元素?
答案 0 :(得分:1)
您可以使用with
:
{{ with forms|get:'Foot And Mouth Disease' as item }}
{{ item.element }}
{{ endwith }}
但更好的方法可能是将过滤器更改为赋值标记,直接将该项添加到上下文中。