如何解决web2py:单选按钮无法在SQLFORM错误上呈现
| 我正在使用带有SQLFORM的自定义单选按钮,如下所示:def radioboxes(field,value):
items=[DIV(name,INPUT(_type=\'radio\',_value=key,_name=field.name,value=value),_class=\'radio\')
for key,name in field.requires.options() if key]
return items
db.define_table(\'table1\',Field(\'name\',\'string\',length=16,required=True,unique=True,),Field(\'shape\',length=12,default=\'star\',widget=radioboxes,requires=IS_IN_SET(shapes)))
我用它来编辑表格
record = db.table1(session.table1_id)
form = SQLFORM(db.table1,record,fields=[\'name\',\'shape\'],showid=False,deletable=True,delete_label=\'Delete\',col3=col3) # edit/delete
除非您在表单中有错误-除非我在名称字段中使用非唯一值,否则会收到预期的错误消息,但单选按钮不再正确呈现-它们会显示出来如:
[<gluon.html.DIV object at 0x08C9F850>,<gluon.html.DIV object at 0x08C9F130>,<gluon.html.DIV object at 0x08C9FFD0>,<gluon.html.DIV object at 0x08C9F070>,<gluon.html.DIV object at 0x08C9FD10>,<gluon.html.DIV object at 0x08C9F8F0>,<gluon.html.DIV object at 0x08C9FE10>,<gluon.html.DIV object at 0x08C9FF90>,<gluon.html.DIV object at 0x08C9FE90>,<gluon.html.DIV object at 0x08C9F6B0>,<gluon.html.DIV object at 0x08C9F610>]
我怎样才能解决这个问题?
解决方法
我通过将生成的单选按钮括在自己的div中来解决此问题:
def radioboxes(field,value):
items=[DIV(name,INPUT(_type=\'radio\',_value=key,_name=field.name,value=value),_class=\'radio\')
for key,name in field.requires.options() if key]
return DIV(*items)
(在返回中添加了DIV)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。