不想验证wtforms中的DateField,但希望保留Date窗体

2024-05-16 06:52:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我的形式是这样的:

在表单.py在

class FollowUpForm(Form):
assigned_to_user_id = SelectField("Assigned to", coerce=int)
planned_followup_date = DateField("Planned Followup Date", [validators.DataRequired("Date is required")], format="%Y-%b-%d")
actual_followup_date = DateField("Actual Followup Date",format="%Y-%b-%d")
notes = TextAreaField("Notes", [validators.DataRequired("Notes is required")])
status = SelectField("Status", choices = zip(status_categories, status_lebels))

我不想验证实际的“跟进”日期字段,但希望保留日期格式。在

我的html表单是这样的

^{pr2}$

当我提交表单时,没有提供任何实际的\u followup_date值,它的错误是“不是有效的日期格式”。但在这种情况下,我希望将空值存储到数据库中,而不希望出现这种跨度错误。您可以看到此错误的屏幕截图。。 Error Screenshot

请建议我..谢谢。。在


Tags: toformat表单dateisstatus错误required
2条回答

您需要将可选类型的验证器添加到实际的后续日期字段中,如下所示:

from wtforms.validators import ..., Optional


...
actual_followup_date = DateField("Actual Followup Date",format="%Y-%b-%d",[validators.Optional()])
...

这将允许您不输入任何内容,只需将None值推送到数据库中。在

创建自定义验证器。在

def customValidatorForFollowupDate(form, field):
    if not form.actual_followup_date.data:
        field.errors[:] = []
        raise StopValidation()

像这样用这个-

^{pr2}$

相关问题 更多 >