Web2py自定义表单和for循环

1 投票
1 回答
885 浏览
提问于 2025-04-17 18:38

我刚接触Web2py,所以希望这个问题不会太傻。

我有一个水果的数据库,里面有布尔值。

显然,这个水果的列表很长,所以我想把它们排成列,因此我选择了一个自定义表单。我还想把水果分组,比如柑橘类、浆果类等等。

我的想法是创建一个元组

{{berries = 'strawberries, bilberry, blackberry'}}

然后用一个循环来填充表单字段,所以我试了试

{{for berry in berries:}} 
{{=form.custom.widget[berry] }}
{{pass}}

结果我看到很多“none”,我猜这是因为我的form.custom字符串写错了,但我尝试了几种解析方式,都没有成功。

有没有更好的方法来做到这一点?

我的代码应该放在视图里还是控制器里?

怎样正确传递变量才能让循环和表单正常工作?

1 个回答

1
berries = 'strawberries, bilberry, blackberry'

这不是一个元组——它只是一个字符串。所以,你的for循环是在遍历字符串中的每一个字母。如果你在form.custom.widget[key]中提供一个不存在的键,它会返回None。相反,你想要的是:

berries = 'strawberries', 'bilberry', 'blackberry'

撰写回答