[英]Implement Python datetime delta with Flask and wtform
使用 flask 和 wtforms 我想控制用戶輸入的date_from
和date_to
。
now = datetime.today()
two_month_ago = now - timedelta(days=60)
date_from = DateTimeField('date_from', format='%Y%m%d',validators=[DateRange(min=anchor_date, max=None, format='%Y%m%d')], default=two_month_ago)
date_to = DateTimeField('date_to', format='%Y%m%d',validators=[DateRange(min=anchor_date, max=None, format='%Y%m%d')], default=now)
這段代碼工作正常,但我發現數據總是返回相同的。 調試后原因是現在它正在被存儲。 為了解決這個問題,提到直接使用datetime.today
而不是datetime.today()
。 但我不再能夠使用兩個月前的 delta 來計算。 如何克服這個問題?
我認為您需要將默認設置為可調用。
from datetime import datetime, timedelta
def two_months_ago():
return datetime.today() - timedelta(days=60)
class MyForm(FlaskForm):
date_from = DateTimeField(
'date_from',
format='%Y%m%d',
validators=[DateRange(min=anchor_date, max=None, format='%Y%m%d')],
default=two_month_ago()
)
date_to = DateTimeField(
'date_to',
format='%Y%m%d',
validators=[DateRange(min=anchor_date, max=None, format='%Y%m%d')],
default=datetime.today()
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.