Skip to main content
 首页 » 编程设计

python之WTForms SelectField 中的自定义选项基于当前日期

2025年05月04日3498°冷暖

我想创建一个自定义 SelectField,它根据当前日期提供不同的选择。例如,如果是该月的 13 日,则选项将为值 1 到 13。我该怎么做?

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')]) 

请您参考如下方法:

覆盖表单的 __init__ 方法并使用从 1 到当前日期的值范围填充字段的 choices。

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)]