在wtforms中,如何在实际表单中使用文档中的示例?

2024-09-28 21:40:11 发布

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

wtform docuentation中,以下函数被描述为可以将SelectMultipleField呈现为复选框集合的小部件:

def select_multi_checkbox(field, ul_class='', **kwargs):
    kwargs.setdefault('type', 'checkbox')
    field_id = kwargs.pop('id', field.id)
    html = [u'<ul %s>' % html_params(id=field_id, class_=ul_class)]
    for value, label, checked in field.iter_choices():
        choice_id = u'%s-%s' % (field_id, value)
        options = dict(kwargs, name=field.name, value=value, id=choice_id)
        if checked:
            options['checked'] = 'checked'
        html.append(u'<li><input %s /> ' % html_params(**options))
        html.append(u'<label for="%s">%s</label></li>' % (field_id, label))
    html.append(u'</ul>')
    return u''.join(html)

我试着用这个作为一个例子,看看它在我的一个表单中是什么样子的。但是我遇到了一些麻烦,我不知道如何调用它,因为我只习惯于使用默认字段。这就是我所尝试的:

^{pr2}$

这给了我以下错误:

line 52, in select_multi_checkbox
field_id = kwargs.pop('id', field.id)
AttributeError: 'UnboundField' object has no attribute 'id'

我的下一个迭代是:

my_checkbox_multi_select = select_multi_checkbox(SelectMultipleField,ul_class='',choices=my_choices,id='test')

这也给了我一个关于id属性的错误,但是这个字段不再是无界的。在

line 52, in select_multi_checkbox
field_id = kwargs.pop('id', field.id)
AttributeError: type object 'SelectMultipleField' has no attribute 'id'

我想知道什么是正确的方法来实现这一点。我看到它是一个函数,所以我认为它需要在一个字段上调用,但我不确定我做错了什么。在


Tags: inidfieldvaluehtmlulselectpop
1条回答
网友
1楼 · 发布于 2024-09-28 21:40:11

所以我想明白了。我猜是在文件里,但我一时不清楚。这是我所做的渲染这个领域。我想这应该是显而易见的,但如果有人在这里寻找这个,它是:

tester = SelectMultipleField(choices=my_choices, widget=select_multi_checkbox)

把它称为一个小部件。很简单。我真希望我早一点把它放在一起。在

相关问题 更多 >