Python 在web2py中向自定义表单添加单选按钮

Python 在web2py中向自定义表单添加单选按钮,python,web2py,Python,Web2py,我试图以自定义形式将字段显示为单选按钮组。我想将每个单选按钮放在表中的不同行上。问题是当我使用{{=form.custom.selection_type[0]}时,小部件被包装在不需要的tr和td标记中。有没有办法只添加单选按钮 我的表格: {{extend 'layout.html'}} {{=form.custom.begin}} <table> <tr> <td> {{=form.custom.selection_type[0]}}:<

我试图以自定义形式将字段显示为单选按钮组。我想将每个单选按钮放在表中的不同行上。问题是当我使用
{{=form.custom.selection_type[0]}
时,小部件被包装在不需要的
tr
td
标记中。有没有办法只添加单选按钮

我的表格:

{{extend 'layout.html'}}
{{=form.custom.begin}}
<table>
  <tr>
    <td> {{=form.custom.selection_type[0]}}:</td>
    <td> {{=form.custom.widget.biller_list}}</td>
  </tr>
  <tr>
    <td> {{=form.custom.widget.selection_type[1]}}:</td>
    <td> {{=form.custom.widget.biller_code}}</td>
  </tr>
</table>
{{=form.custom.end}}

它还没有稳定,但在trunk中,您现在可以为radio小部件指定ul或divs样式,而不是table样式。我想应该是:

db.payment_bpay_step1.selection_type.widget = \
    lambda f, v: SQLFORM.widgets.radio.widget(f, v, style='divs')
您还可以创建一个自定义小部件,如本部分末尾所述


当您说希望“innerhtml”与单选按钮的值不同时,您是指单选按钮旁边的标签吗?为此,IS_IN_集合验证器接受一个'labels'参数,该参数是与集合中的选项相关联的标签列表。

谢谢!IS_IN_SET()的labels参数运行良好。不过,我无法让lamda函数工作。我在其中一个中使用了您的响应来创建自定义小部件。请注意,只有在您使用当前的web2py主干版本(而不是当前的稳定版本,即1.98.2)时,上面的lambda函数解决方案才会起作用。Trunk将在任何一天作为1.99.1发布。现在,你可以得到它。或者,您也可以复制来制作一个自定义小部件。
db.define_table('payment_bpay_step1',
    Field('selection_type', 'list:string'),
    Field('biller_list', db.biller, notnull=True),
    Field('biller_code'),
    Field('biller_name'))
db.payment_bpay_step1.selection_type.requires = IS_IN_SET(('From my biller list', 'Search by biller code', 'Search by biller name'))
db.payment_bpay_step1.selection_type.widget = SQLFORM.widgets.radio.widget
db.payment_bpay_step1.selection_type.widget = \
    lambda f, v: SQLFORM.widgets.radio.widget(f, v, style='divs')