当我使用wtforms.IntegerField
withrequired
验证器时,我只会收到“此字段是必需的”消息。
另一方面,似乎IntegerField
只能是必需的,我不应该使用必需的验证器。
这里的逻辑是什么?这个字段只是添加了一个整数验证器,它是否仍然可以用作必填字段(但必须是 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") }}
如果我删除了所需的验证器,我的表单仍然需要该值。
我刚刚在文本字段上使用了自定义验证器。