有没有一种简单的方法可以重新定位复选框的标签?我想以与其他控件相同的方式在左侧显示它们。
问问题
44 次
2 回答
1
您只需要制作自己的表单样式(复制 formstyle_bootstrap3_inline_factory,我猜您正在使用它)
然后删除以不同方式处理复选框的规则:
elif controls['_type'] == 'checkbox':
label['_for'] = None
label.insert(0, controls)
label.insert(1, ' ')
_controls = DIV(DIV(label, _help, _class="checkbox"),
_class="%s %s" % (offset_class, col_class))
label = ''
于 2020-12-09T14:25:45.860 回答
0
谢谢蒂姆的回答。这告诉了我我需要知道的一切。这是我必须做的:
在 中找到相关函数
gluon\sqlhtml.py
。对我来说是formstyle_bootstrap4_inline_factory
将
_inner
函数中的formstyle_boostrap4_inline_factory
函数复制到我的应用程序中并重命名formstyle_myapp
(将其放入模型文件中可能是最简单的)复制
add_class
函数gluon.sqlhtml
并将其添加到formstyle_myapp
函数中。这使其formstyle_myapp
仅对可见。更改 db.py 中的默认
formstyle
设置以指向新函数:response.formstyle = formstyle_myapp
最后,调整复选框部分,
formstyle_myapp
将左侧的标签放置在所有其他标签下方,将复选框置于所有其他控件下方:elif controls['_type'] == 'checkbox' or controls['_type'] == 'radio': _controls = DIV(controls, _class="%s" % col_class)
于 2020-12-18T02:34:00.223 回答