难以在循环内呈现形式

时间:2017-06-28 07:31:42

标签: forms rendering web.py

我是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个复选框?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

问题是$:form.$name在调用render()之前解析为字符串。您可以通过将其替换为$:form[name]来解决此问题。你仍然在&#34; python&#34;使用form[name]的上下文,因此您应该使用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/>