Django模板位掩码

2024-10-16 17:28:04 发布

您现在位置:Python中文网/ 问答频道 /正文

请考虑以下列表:

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运算符?(或者有更简单的吗?)你知道吗


Tags: namediv模板列表forasoptionsoption
1条回答
网友
1楼 · 发布于 2024-10-16 17:28:04

作为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 %}

相关问题 更多 >