【问题标题】:ToscaWidgets - customize formToscaWidgets - 自定义表单
【发布时间】:2015-04-24 11:47:09
【问题描述】:

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

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

这种级别的自定义是否可以使用 ToscaWidgets 而无需覆盖 Python 中的内容?

【问题讨论】:

    标签: turbogears2 toscawidgets


    【解决方案1】:

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

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

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

    【讨论】:

    • 如果能够从模板中选择表单是呈现为 TableForm 还是以其他方式呈现,那就太好了。
    猜你喜欢
    • 2010-11-07
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 2018-05-06
    • 2011-07-02
    • 2012-10-09
    • 2013-12-01
    • 1970-01-01
    相关资源
    最近更新 更多