考虑这个清单:
options = [
{
'name': 'Option 1',
'plan': 0b001,
},
{
'name': 'Option 2',
'plan': 0b010,
},
{
'name': 'Option 3',
'plan': 0b110,
},
]
问题:如何将此列表显示为
plan1 plan2 plan3
Option 1 ✔
Option 2 ✔
Option 3 ✔ ✔
来自
之类的模板{% for option as options %}
<div>
<div>{{ option.name }}</div>
<div>{{ option.plan|bitmaskcheck:0b001 }}</div>
<div>{{ option.plan|bitmaskcheck:0b010 }}</div>
<div>{{ option.plan|bitmaskcheck:0b100 }}</div>
</div>
{% endfor %}
有一种bitmaskcheck
运营商? (或者会更简单吗?)
答案 0 :(得分:0)
作为suggested by @MikkoOhtamaa,我将使用字典
options = [
{
'name': 'Option 1',
'plan': {1: True,},
},
{
'name': 'Option 2',
'plan': {2: True,},
},
{
'name': 'Option 3',
'plan': {2: True, 3: True,},
},
]
然后我应该能够将支票作为:
{% for option as options %}
<div>
<div>{{ option.name }}</div>
<div>{% if option.plan.1 %}✔{% endif %}</div>
<div>{% if option.plan.2 %}✔{% endif %}</div>
<div>{% if option.plan.3 %}✔{% endif %}</div>
</div>
{% endfor %}