2

我正在尝试实现一个表单,其中每个字段都有多个选项,并且必须是复选框行。我想在行标题中显示此表单,并在相应行中显示复选框选项。我还需要数据库表实现方面的帮助。任何帮助将不胜感激。我是 web2py 的新手。提前致谢。

4

1 回答 1

0

你试过什么了?听起来您想要一个带有布尔值的数据模型:

(在 models/???.py 中——确保它在 db.py 之后执行并且你已经定义了一个 DB)

db.define_table('table_name', 
   Field('SomeFieldA', 'boolean')
   Field('SomeFieldB', 'boolean')
   Field('SomeFieldC', 'boolean')
   Field('SomeFieldD', 'boolean')
   ... etc ...
)

您可能必须实现一个自定义表单来获得您想要的布局,因为我想不出一种开箱即用的方式来做到这一点。

在此处阅读有关自定义表单的信息

您需要从以下内容开始:

<table>
{{=form.custom.begin}}
  <thead>
    <tr>
    {{ #loop over form field labels... something like:
      for field in form.fields: }}
      <th>{{=field.label}}</th>
    {{ pass }}
    </tr>
  </thead>

  <tbody>
    <tr>
    {{for field in form.fields: }}
      <td>{{  =form.custom.widget[field]  }}</td>
      {{ # or directly access it without a loop with form.custom.widget.SomeFieldA }}
    {{ pass }}
    </tr>
  </tbody>      

  {{=form.custom.submit}}
{{=form.custom.end}} 
</table>

请注意,我没有测试过任何这段代码,我可能会错误地访问表单字段和标签。如果您需要预先填充表单,请在控制器中执行此操作。上面的自定义表单链接也讨论了预填充。

于 2012-07-31T15:40:44.383 回答