ToscaWidgets - 自定义表单

时间:2015-04-24 11:47:10

标签: turbogears2 toscawidgets

我正在使用https://pypi.python.org/pypi/tgapp-resetpassword/0.1.5,它允许您覆盖用于重置密码页面的模板。不幸的是,实际的表单本身被包含为“黑匣子”:

<div>
    ${reset_password_form.display(action=action)}
</div>

表单已被定义为tw2.forms.TableForm,而不是我想要显示它的方式。是否有可能实现更精细的谷物控制,例如在每个字段周围插入自定义html,或者更明确地说明如何显示某些字段?

E.g。我想做以下(构成)的事情:

<div>
    <form ${reset_password_form.attrs} class="my-own-class-name">
      <py:for each="field in reset_password_form.fields">
         <div class="custom-class-here">
            <label for="${field.id}"> 
                ... some logic to possibly override default label else...
                ${field.default_label_text}
            </label>
            ${field.render_as_input_field()}
         </div>
      </py:for>
      <button type="submit">My own submit text</button>
    <form>
 </div>

使用ToscaWidgets可以实现这种自定义级别而不会覆盖Python中的内容吗?

1 个答案:

答案 0 :(得分:1)

通过resetpassword文档,您可以使用reset_password.reset_password_form选项来指定替代tw2表单。

您只需要在其中放置您想要使用的表单的python路径(如"resetpassword.lib.forms.ResetPasswordForm")来代替默认表单。

然后您拥有的表单可以指定自定义模板,例如https://gist.github.com/amol-/d2a08027d34a8c4dfa69