我正在使用带有DatePicker
小部件的Django表单。我必须在类级别定义DatePicker
的最小和最大日期。我想在运行视图时更改这两个值,否则,它将保留从启动Django服务器起的最小和最大日期值。
from django import forms
from bootstrap_datepicker_plus import DatePickerInput
import pandas as pd
import datetime as dt
MIN_DATE = dt.datetime.today().strftime('%m-%d-%Y')
MAX_DATE = (dt.datetime.today() + dt.timedelta(days=92)).strftime('%m-%d-%Y')
class TableEdit(forms.Form):
Account = forms.CharField(label='Account', max_length=10)
Hedge = forms.CharField(label='Hedge', max_length=10)
Date = forms.DateField(widget=DatePickerInput(
options={
'format': 'MM/DD/YYYY',
'minDate': MIN_DATE,
'maxDate': MAX_DATE
}))
每次从视图中调用表单时,如何修改MIN_DATE
和MAX_DATE
表单属性?
您可以通过表单的__init__
方法来实现,就像这样:
class TableEdit(forms.Form):
Account = forms.CharField(label='Account', max_length=10)
Hedge = forms.CharField(label='Hedge', max_length=10)
Date = forms.DateField()
def __init__(self, *args, **kwargs):
super(TableEdit, self).__init__(*args, **kwargs)
min_date = dt.datetime.today().strftime('%m-%d-%Y')
max_date = (dt.datetime.today() + dt.timedelta(days=92)).strftime('%m-%d-%Y')
self.fields['Date'].widget = DatePickerInput(
options={
'format': 'MM/DD/YYYY',
'minDate': min_date,
'maxDate': max_date
})