Python Django-模板位掩码检查

Python Django-模板位掩码检查,python,django,django-templates,bitmask,django-template-filters,Python,Django,Django Templates,Bitmask,Django Template Filters,考虑以下列表: 选项=[ { “名称”:“选项1”, “计划”:0b001, }, { “名称”:“选项2”, “计划”:0b010, }, { “名称”:“选项3”, “计划”:0b110, }, ] 问题:如何将此列表显示为 plan1 plan2 plan3 Option 1 ✔ Option 2 ✔ Option 3 ✔ ✔ 从一个模板 {%for option as options%}

考虑以下列表:

选项=[
{
“名称”:“选项1”,
“计划”:0b001,
},
{
“名称”:“选项2”,
“计划”:0b010,
},
{
“名称”:“选项3”,
“计划”:0b110,
},
]
问题:如何将此列表显示为

         plan1 plan2 plan3
Option 1               ✔
Option 2         ✔      
Option 3   ✔     ✔      
从一个模板

{%for option as options%}
{{option.name}
{{option.plan | bitmaskcheck:0b001}
{{option.plan | bitmaskcheck:0b010}
{{option.plan | bitmaskcheck:0b100}
{%endfor%}
使用一种
bitmaskcheck
操作符?(或者会有更简单的吗?

因为,我将使用一个词汇表

选项=[
{
“名称”:“选项1”,
'计划':{1:True,},
},
{
“名称”:“选项2”,
'计划':{2:True,},
},
{
“名称”:“选项3”,
'计划':{2:True,3:True,},
},
]
然后我应该能够进行以下检查:

{%for option as options%}
{{option.name}
{%if option.plan.1%}✔{%endif%}
{%if option.plan.2%}✔{%endif%}
{%if option.plan.3%}✔{%endif%}
{%endfor%}

由于Python是一种非常高级的编程语言,我不会尝试创建位掩码,因为它会增加问题的复杂性,而不会带来任何性能好处。相反,options.plan对象可以是具有选项的命令行。plan[“plan1”]=True或False。然后您可以简单地检查它{{option.plan.plan1}