代码之家  ›  专栏  ›  技术社区  ›  user8224031

难以在循环内渲染表单

  •  1
  • user8224031  · 技术社区  · 7 年前

    我是网络新手。py和我在以下方面有困难:

    应用程序内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 回复  |  直到 7 年前
        1
  •  0
  •   pbuck    7 年前

    问题是 $:form.$name 在调用之前解析为字符串 render() 。您可以将其替换为 $:form[name] 。您仍然处于“python”上下文中 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/>