我是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个复选框?
非常感谢任何帮助。
答案 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/>