gpt4 book ai didi

flask - 如何使用 Flask-WTF 实现不需要的 DateField

转载 作者:行者123 更新时间:2023-12-03 12:10:40 29 4
gpt4 key购买 nike

我想要一个可选的 DateField,
但如果将其留空,我会收到“无效的日期值”错误

我在wtforms的源代码中添加了一些日志,发现
formdata.getlist(self.name) 为这个 DateField 返回 [u'']

我的表格代码:

from wtforms import BooleanField, TextField, TextAreaField, PasswordField, validators, HiddenField, DateField, SelectField
from flask_wtf import Form

class EmployeeForm(Form):
id = HiddenField('id')
title = TextField('Title')
start = DateField('Start Date', format='%m/%d/%Y')

最佳答案

相当古老的话题,但有人可能仍然遇到同样的问题,所以我会给出我可能的答案。
添加 validators.Optional()在这里没有帮助,因为该字段在处理阶段早期被标记为错误。
您可以像这样修补处理器的行为:

class NullableDateField(DateField):
"""Native WTForms DateField throws error for empty dates.
Let's fix this so that we could have DateField nullable."""
def process_formdata(self, valuelist):
if valuelist:
date_str = ' '.join(valuelist).strip()
if date_str == '':
self.data = None
return
try:
self.data = datetime.datetime.strptime(date_str, self.format).date()
except ValueError:
self.data = None
raise ValueError(self.gettext('Not a valid date value'))

关于flask - 如何使用 Flask-WTF 实现不需要的 DateField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27766417/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com