【发布时间】:2013-10-11 01:32:12
【问题描述】:
我想创建 twitter bootstrap 兼容表单。根据docs for Twitter Bootstrap v2.2.2(web2py 中包含的版本),html 应如下所示:
<form class="form-horizontal">
<div class="control-group">
<label class="control-label" for="inputEmail">Email</label>
<div class="controls">
<input type="text" id="inputEmail" placeholder="Email">
</div>
</div>
...
我目前正在使用 SQLFORM,它输出的 html 并不真正适合这个(即使使用 formstyle='divs')。此外,我希望我的 html 输出是干净的,没有 web2py 工件,例如class="w2p_fl"。所以我的想法是使用自定义表单。然而,这样做会有很多重复的代码。也就是说,基本上每个字段都需要重复以下内容。
{{=form.custom.begin}}
<div class="control-group">
{{=LABEL(form.custom.label['myfield'], _class='control-label',
_for='mytable_myfield')}}
<div class="controls">{{=form.custom.widget.myfield}}</div>
</div>
...
{{=form.custom.end}}
那么我怎样才能重复上面的代码单元,以便我可以用 {{=bootstrap_field(db.mytable.myfield)}} 之类的东西或其他一些遵守 DRY 的方式来替换它?
执行此操作的 web2py 方法是什么?创建视图函数?在控制器返回的字典中传递一个函数?创建我自己的 html 助手?创建我自己的小部件?另一种方式?
【问题讨论】:
标签: forms twitter-bootstrap dry web2py