web2py 默认表单样式不工作

web2py default formstyle not working

在我的 appconfig.ini 文件中,默认 formstylebootstrap3_inline。但是当表单在浏览器中显示时,表单元素是垂直显示的,一个在另一个下面,页面源说表单 class 是 form-horizontal。我尝试使用 formstyle 的所有其他选项,但无法获得 bootstrap form-inline。我正在使用 Chrome 浏览器。

我想使用 'form-inline' 样式,因为我的表单只有几个元素,而且很多屏幕 space 未使用 'form-horizontal' 样式。如何让表格显示在一行中?

bootstrap3_inline 这个名字有点误导,因为它实际上是为了产生一个 Bootstrap horizontal form。此上下文中的术语 "inline" 仅表示每个表单字段显示标签和输入 inline(与默认情况相反,输入显示在标签下方).

要转换为真正的 Bootstrap 内联形式,只需在 FORM 对象构造后更改 class 即可:

form = SQLFORM(db.mytable).process()
form['_class'] = 'form-inline'

如果您想将此样式应用于多个表单或将其设为默认样式,您可以创建一个基于 boostrap3_inline 表单样式的自定义 formstyle 函数:

from gluon.sqlhtml import formstyle_bootstrap3_inline_factory
def inline_form(form, fields):
    form = formstyle_bootstrap3_inline_factory(3)(form, fields)
    form['_class'] = 'form-inline'
    return form

那么您可以将此样式应用于单个表单:

form = SQLFORM(db.mytable, formstyle=inline_form)

或者设为默认 formstyle:

response.formstyle = inline_form