Python WTForms SelectField bsed中的自定义选项在当前日期生效
我想创建一个自定义SelectField,根据当前日期在中提供不同的选择。例如,如果是本月的第13天,则选择值为1到13。我该怎么做Python WTForms SelectField bsed中的自定义选项在当前日期生效,python,flask,wtforms,Python,Flask,Wtforms,我想创建一个自定义SelectField,根据当前日期在中提供不同的选择。例如,如果是本月的第13天,则选择值为1到13。我该怎么做 def register_extensions(app): security.init_app(app, datastore=ds, register_form=forms.ExtendedRegisterForm) class ExtendedRegisterForm(RegisterForm): pay_month = SelectField
def register_extensions(app):
security.init_app(app, datastore=ds, register_form=forms.ExtendedRegisterForm)
class ExtendedRegisterForm(RegisterForm):
pay_month = SelectField(choices=[('need', 'custom'), ('day', 'choices')])
重写表单的_uinit_uu方法,并使用从1到当前日期的值范围填充字段的选项
from datetime import datetime
class ExtendedRegisterForm(RegisterForm):
pay_month = SelectField()
def __init__(self, *args, **kwargs):
super(ExtendedRegsiterForm, self).__init__(*args, **kwargs)
now = datetime.utcnow()
self.pay_month.choices = [(i, i) for i in range(1, now.day + 1)]
重写表单的_uinit_uu方法,并使用从1到当前日期的值范围填充字段的选项
from datetime import datetime
class ExtendedRegisterForm(RegisterForm):
pay_month = SelectField()
def __init__(self, *args, **kwargs):
super(ExtendedRegsiterForm, self).__init__(*args, **kwargs)
now = datetime.utcnow()
self.pay_month.choices = [(i, i) for i in range(1, now.day + 1)]
找到了一个更简单的方法:pay_month=SelectField's 2nd pay Day of month',choices=[idx,dt for idx,dt in enumeratedatetime.datetime.today-datetime.timedeltadays=y.date.strftime''%B-%d'for y in rangedatetime.datetime.today.Day]找到了一个更简单的方法:pay_month=SelectField's of month's,choices'=[idx,idx的dt,enumeratedatetime.datetime.today中的dt-datetime.timedeltadays=y.date.strftime“%B-%d”对于rangedatetime.datetime.today.day中的y]