ToscaWidgets - 自定义表单

ToscaWidgets - customize form

我正在使用 https://pypi.python.org/pypi/tgapp-resetpassword/0.1.5,它允许您覆盖用于重置密码页面的模板。不幸的是,实际表格本身包含在 'black box':

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

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

例如我想做类似下面的事情(编造的):

<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>

在不覆盖 Python 中的内容的情况下,使用 ToscaWidgets 是否可以实现这种级别的自定义?

根据 resetpassword 文档,您有一个 reset_password.reset_password_form 选项可用于指定替代的 tw2 形式。

您只需将要使用的表单的 python 路径(如 "resetpassword.lib.forms.ResetPasswordForm")放在那里以代替默认表单。

然后你自己的表单可以指定一个自定义模板,比如https://gist.github.com/amol-/d2a08027d34a8c4dfa69