难以在循环内呈现表单

Difficulty rendering form inside a loop

我是 web.py 的新手,遇到以下问题:

在app.py

args = ()
for i in range(4):
    args = args + (form.Checkbox('followup'+str(i)), )

my_form = form.Form(*args)

在my_template.html

$for i in range(4):
    $ name = "followup"+ str(i)
    $name $:form.$name.render() <br>

当我 运行 这样做时,我收到以下错误:

'str'对象没有属性'render'

我应该如何更改我的模板以便我有 4 个复选框?

如有任何帮助,我们将不胜感激。

问题是 $:form.$name 在调用 render() 之前解析为字符串。您可以通过将其替换为 $:form[name] 来解决该问题。您仍处于 form[name] 的 "python" 上下文中,因此您应该使用 name 而不是 $name

=== my_template.html ===
$def with(form)

$for i in range(4):
    $ name = 'followup' + str(i)
    $name $:form[name].render()<br/>

或者,更简单:

=== my_template.html ===
$def with(form)

$for i in form.inputs:
    $i.description $:i.render()<br/>