【问题标题】:Difficulty rendering form inside a loop循环内难以呈现表单
【发布时间】:2017-06-28 07:31:42
【问题描述】:

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

任何帮助将不胜感激。

【问题讨论】:

    标签: forms rendering web.py


    【解决方案1】:

    问题是$: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/>
    

    【讨论】:

    • 谢谢。我需要的是 $:form[name].render()
    猜你喜欢
    • 2017-01-02
    • 2014-11-15
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多