Feature request: parsing DateTimeField input with a function
Closed this issue · 1 comments
rickwierenga commented
Currently, the DateTimeField
takes a format
parameter:
DateTimeField("datetime", format='%Y-%m-%d %H:%M:%S')
It would be great to add an optional parse
parameter, which would take a function converting a string into a datetime object. This would make the field more extendible. Examples:
DateTimeField("datetime", parse=datetime.datetime.fromisoformat)
DateTimeField("datetime", parse=lambda x: datetime.datetime.fromtimestamp(int(x))
This option would be mutually exclusive with the format
parameter.
Idem for TimeField
and DateField
.
Let me know if I can create a PR for this.
azmeuk commented
Hi. You can actually already do this with filters:
>>> import wtforms
>>> import datetime
>>> class Form(wtforms.Form):
... dt = wtforms.DateTimeField(filters=[datetime.datetime.fromisoformat])
>>> f = Form(dt='2023-07-21T18:11:32.295417')
>>> f.dt.data
datetime.datetime(2023, 7, 21, 18, 11, 32, 295417)
>>> class Form(wtforms.Form):
... dt = wtforms.DateTimeField(filters=[datetime.datetime.fromtimestamp])
>>> f = Form(dt=1689955998.857561)
>>> f.dt.data
datetime.datetime(2023, 7, 21, 18, 13, 18, 857561)
Related to #793