【发布时间】:2014-02-22 10:26:44
【问题描述】:
当我使用 wtforms.IntegerField 和 required 验证器时,我只会收到“此字段是必需的”消息。
另一方面,IntegerField 似乎只能是必需的,我不应该使用必需的验证器。
这里的逻辑是什么?这个字段只是添加了一个is整数验证器,它是否仍然可以用作必填字段(但必须是int)或非必填字段?
只是想在这里发现一些模式。
更新:
- WTForms 版本为
__version__ = '1.0.5' - Flask_WTF 版本为
__version__ = '0.9.3'
表格
class OrderForm(Form):
order_number = wtforms.IntegerField('Order Number', validators=[validators.Required()])
查看
def render_response(self):
ctx = {}
order_form = OrderForm()
ctx['order_form'] = order_form
if order_form.validate_on_submit(): pass
# stuff.
return render_template('support/warranty_form.html', **ctx)
模板
{% macro render_field(field) %}
<div class="form-field-wrapper">
<div class="form-field">
{{ field(**kwargs) }}
</div>
{{ render_field_errors(field) }}
</div>
{% endmacro %}
{{ render_field(order_form.order_number, placeholder="ORDER NUMBER") }}
如果我删除了所需的验证器,我的表单仍然需要该值。
我刚刚在文本字段上使用了自定义验证器。
【问题讨论】:
-
我想我应该开始为每个项目构建自己的验证器库。已经这样做了。
-
您能否发布您正在使用的表单的代码、您要验证的输入以及您正在使用的 wtforms 的版本?
-
@MarkHildrethd,完成!
标签: python wtforms flask-wtforms