- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现 IntegerField 在为空时不验证。要重现,请复制以下 block :
from flask import Flask, render_template_string
from flask_wtf import FlaskForm
from wtforms import IntegerField
app = Flask(__name__)
app.config['WTF_CSRF_ENABLED'] = False
class DemoForm(FlaskForm):
demofield = IntegerField('demofield')
@app.route('/', methods=("GET","POST"))
def index():
form = DemoForm()
if form.validate_on_submit():
return ("The form validated!")
return render_template_string("<!DOCTYPE HTML> This is my form! <form method=\"post\">{% for field in form %}{{field}}{% endfor %}<input type=\"submit\">", form=form)
app.run(debug=True)
并将其作为 app.py 保存在自己的目录中。然后打开一个终端,cd 到目录,然后运行以下命令:
virtualenv flask
source flask/bin/activate
pip install flask flask-wtf
export FLASK_APP=app.py
python3 app.py
在网络浏览器中连接到 localhost:5000。在表单字段中输入一个整数并提交将显示“表单已验证!”在字段中输入非整数的内容,或将字段留空,然后提交只会重新加载页面。这确实有一定道理,因为不能将 ""强制转换为整数。
我想让我的 IntegerField 为空。我认为解决方案是继承 IntegerField 和 override pre_validate() or post_validate() .我有:
class OptionalIntegerField(IntegerField):
def post_validate(self, form, validation_stopped):
print("post_validate is being called")
if (self.data in (None, "")):
return True
我的问题是:
返回 True
?最佳答案
Optional
验证器允许在表单字段上输入空值。
>>> from webob.multidict import MultiDict
>>> class F(Form):
... foo = IntegerField(validators=[validators.Optional()])
>>> f = F(formdata=MultiDict(foo=1))
>>> f.validate()
True
>>> f = F(formdata=MultiDict(foo=''))
>>> f.validate()
True
>>> f = F(formdata=MultiDict(foo='a'))
>>> f.validate()
False
来自docs :
class wtforms.validators.Optional(strip_whitespace=True)
Allows empty input and stops the validation chain from continuing.
If input is empty, also removes prior errors (such as processing errors) from the field.
关于wtforms - IntegerField 不验证空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46761931/
我发现 IntegerField 在为空时不验证。要重现,请复制以下 block : from flask import Flask, render_template_string from flas
我将持续时间存储为 IntegerField 中的分钟。在我的前端表单(Model Form)中,我想将输入拆分为一个字段表示分钟和一个字段表示小时。我还希望能够使用 InLineFormset。这可
我将持续时间存储为 IntegerField 中的分钟。在我的前端表单(Model Form)中,我想将输入拆分为一个字段表示分钟和一个字段表示小时。我还希望能够使用 InLineFormset。这可
我有一个Form具有单个 IntegerField 的实例. IntegerField 将 HTML 呈现为 与 type="text"数据以文本字符串的形式从 HTML 表单 POST 回来。但是,
我的最终目标是为我的 Django 网站获得 5 星级评级系统。我正在使用链接到我的模型的表单来处理它。 这是我审查的模型: class review(models.Model): ONE_TO_FI
拥有带有整数字段的 Cloud Endpoints (ProtoRPC) 消息类,例如 TestMsg(messages.Message): int_field = messages.Intege
wtforms.IntegerField.data 未传递到 post 方法上的 html 模板,但传递到 get 方法上。 将下面代码中的 IntegerField 替换为 StringField
作为 Django 的初学者,我尝试制作一个简单的应用程序,该应用程序可以提供内容被查看次数的 Http 响应。我创建了一个新的 Counter 模型,并在内部添加了 IntegerField 模型
我想知道为什么,当我从数据库中获取一个在 models.py 中定义为 models.IntegerField 的字段时,我得到的是 long 而不是 int 例如我有一个模型 EventSchedu
我有这种特殊情况,客户需要特定(传统)格式的预订编号,第一个从当年开始:2015-12345所以基本上每年我都必须从 0 开始 另一个以外键开头:7-123因此,每个用户创建的第一个文档的编号为 1,
当我将 wtforms.IntegerField 与 required 验证器一起使用时,我只会收到消息“此字段是必需的”。 另一方面,似乎只能要求 IntegerField 而我不应该使用要求的验证
这么简单的问题,却好像找不到什么in the documentation关于它。 例如,整数可以是负数吗? 最佳答案 没有。任何整数都是有效的。负面肯定没问题。但 IntegerField 默认不受限
我有一个这样的表格: class SomeForm(forms.Form): first = forms.IntegerField(max_value= DontWantToSetYet) sec
我有这个模型字段: id_student = models.PositiveIntegerField(primary_key=True, max_length=10) max_length限制不起作用
这是我尝试过的: nrkomp = IntegerField('Number',validators=[NumberRange(min=1, max=5, message='Invalid lengt
我有一个表单,我不会将其呈现为 HTML 页面的一部分,但会验证输入: class milestone_form(forms.Form): name = forms.CharField(req
如果我有一个像这样的简单模型: class Book(models.Model): title = models.TextField() year = models.IntegerFi
简单形式: class AdjustPWMForm(Form): dutyCycle = IntegerField('dutycycle') #dutyCycle = IntegerF
我在研究一些 Django,遇到了一个小问题。 我正在寻找一种使 suit_length 默认等于客户高度的方法。这种代码对我有用: class Customer(models.Model):
当您有一个带有选择选项的模型字段时,您往往会有一些与人类可读名称相关联的神奇值。在 Django 中是否有一种方便的方法可以通过人类可读的名称而不是值来设置这些字段? 考虑这个模型: class Th
我是一名优秀的程序员,十分优秀!