有没有办法验证一个复选框是否已选中?

2024-10-03 00:29:37 发布

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

我正在尝试创建一个包含多个复选框的烧瓶窗体。但是,我要确保用户在一组大约30个复选框中至少选中了一个复选框。可以在烧瓶里做吗?你知道吗

这是其中3个按钮的Python代码

button1 = BooleanField('button1')
button2 = BooleanField('button2')
button3 = BooleanField('button3')

这是其中3个按钮的Jinja2代码

{{ form.button1(class="form-checkbox-input") }}
{{ form.button1.label(class="form-check-label") }}<br>
{{ form.button2(class="form-checkbox-input") }}
{{ form.button2.label(class="form-check-label") }}<br>
{{ form.button3(class="form-checkbox-input") }}
{{ form.button3.label(class="form-check-label") }}<br>

Tags: 代码brforminput烧瓶check按钮label
1条回答
网友
1楼 · 发布于 2024-10-03 00:29:37
button1 = BooleanField('button1')
button2 = BooleanField('button2')
button3 = BooleanField('button3')

这是一种相当低效的处理数组的方法(从必须编写的内容的意义上讲,而不是代码的速度)。您可能需要考虑使用实际的数组,例如(a)

buttonArray = []
for idx in range(30):
    # F-strings relatively recent Python, you could go back
    # to "button%d".format(idx + 1) if need be.

    buttonArray.append(BooleanField(f'button{idx + 1}'))

然后你可以用这个来检查一个或多个是真的:

if any(buttonArray):
    atLeastOneTrue()

像这样处理每一个真实的元素:

for idx in range(len(buttonArray)):
    if buttonArray[idx]:
        print(f'button{idx + 1} is true')

(a)请记住,我对Jinja2知之甚少,但如果您能在处制作数组,使其更加高效,我也不会感到惊讶。你知道吗

相关问题 更多 >