【问题标题】:adding validation(jquery and server side) to wtforms向 wtforms 添加验证(jquery 和服务器端)
【发布时间】:2012-07-02 04:07:29
【问题描述】:

我有一个简单的模型表单,它通过以下 jinja2 模板呈现:

<form method="POST" action=""> 
    <table>
      {% for field in form %}   

      <tr>{{ field.label }}</tr>
      <tr>{{ field()|safe }}</tr>

      <tr>
        {% if field.errors %}
        <td>
          <ul class=errors>
            {% for error in field.errors %}
            <li>{{ error }}</li>
            {% endfor %}
          </ul>
        </td>
        {% endif %}
        {% endfor %}
    </table>
    <input type="submit" class="btn"  value="Submit Form"/>
  </form>

我想自定义 wtforms 的输出以及每个要呈现的表单字段,我想添加一个类 "required" 以使用 jquery 客户端验证插件。

以下是我的 appengine db 模型:

class Song(db.Model):
    title = db.StringProperty()
    lyrics = db.TextProperty()
    duration = db.IntegerProperty()
    movie = db.ReferenceProperty(Movie)
    singer = db.ReferenceProperty(Singer)

以下是我的表单,渲染脚本:

SubTaskForm = model_form(Song, 
                         exclude=('movie', 'singer'),
                         )

使用 wtfroms 验证器附加验证器的好方法是什么,以及如何将 class=required 附加到表单字段?

让我知道怎么做。

【问题讨论】:

    标签: jquery python google-app-engine jinja2 wtforms


    【解决方案1】:

    看看这个库https://pypi.python.org/pypi/WTForms-ParsleyJS 自动从 WTForms 服务器端验证器生成客户端、parsley.js 验证标签。

    http://codevisually.com/parsley-js/ Parsley.js 是一个轻量级(12k 缩小)表单验证 JavaScript 库,但有所不同。它不是使用 JS 验证表单,而是使用数据属性来实现相同的效果。它适用于 jQuery 和 Zepto,并且非常易于配置,允许您覆盖几乎所有 Parsley 默认行为以满足您的确切需求。

    【讨论】:

      【解决方案2】:

      一种方法是覆盖你定义它们的python中的东西,另一件可以做的事情是,你可以在模板本身中尝试,&lt;tr class="required"&gt; 试试看,应该可以的。

      【讨论】:

        【解决方案3】:

        渲染器 (field()) 在生成的 HTML 中将参数作为属性传递。因此,通过调用,例如 field(class='required'),您可以将字段标记为必填项并照常应用 jquery validate 插件。如果您的上下文将“class”视为关键字,则可以传入“class_”。 WTForms.field通话说明中的详细信息。

        【讨论】:

        • 记住类是带字段的_class(类是保留的)
        猜你喜欢
        • 2010-12-28
        • 2012-09-06
        • 2011-06-19
        • 1970-01-01
        • 1970-01-01
        • 2013-01-06
        • 1970-01-01
        • 2023-03-12
        • 2011-11-11
        相关资源
        最近更新 更多