为什么当我使用复选框小部件时,web2py显示禁用的输入html



我正在学习web2py,但遇到了一些问题。我有一个一对多的关系,定义如下:

db.define_table('dog',
    Field('name', requires=IS_NOT_EMPTY()))
db.define_table('person',
    Field('name', requires=IS_NOT_EMPTY()),
    Field('dogs', 'list:reference dog'))
db.person.dogs.widget=SQLFORM.widgets.checkboxes.widget

一只狗有一个主人,但一个主人可以有多只狗。

在我的控制器中,我创建了一个表单,其中有一个用于人名的文本字段,以及一个用复选框表示的狗列表。

表单创建的控制器代码很简单:

form = SQLFORM(db.person)   # rendered with {{=form}} in views

这是有效的,但在复选框列表的末尾有一个奇怪的文本输入,它被标记为禁用:

<tr><td><input class="hidden" disabled="disabled" name="dogs" type="text" /></td></tr>

这实际上并没有隐藏,只是变灰了。

我查看了web2py源代码,复选框小部件位于web2py.gluon.sqlhtml中,但我很难解释为什么它要将此禁用输入附加到复选框列表中。

有人能澄清为什么会有这个被禁用的输入,或者如何在没有这个问题的情况下正确创建这个表单吗?

Anthony的评论是正确的:我忘记加载css文件了。

最新更新