date_range = 100
this_year = date.today().year
birth_date= forms.DateField(label='What is your birth date?', widget=forms.SelectDateWidget(years=range(this_year - date_range, this_year 1)))
我只想選擇距今天 100 年的日期。但我目前可以得到像 2021 年 12 月 31 日這樣的值,有時月份和天數與正確的值不匹配。
uj5u.com熱心網友回復:
Django 需要SelectDateWidget 中的years引數串列或元組。嘗試:
this_year = date.today().year
year_range = [x for x in range(this_year - 100, this_year 1)]
birth_date = forms.DateField(
label="What is your birth date?",
widget=forms.SelectDateWidget(years=year_range),
)
如果您想檢查特定范圍內的選定日期,請添加表單欄位驗證器。這是一個簡單的 100 年前計算的例子:
from datetime import datetime, timedelta
class YourForm():
...
def clean_birth_date(self):
birth_date = self.cleaned_data['birth_date']
today = datetime.today()
first_date = today - timedelta(days=100 * 365)
if not (first_date < birth_date < today):
raise ValidationError("Please select a date within the last 100 years")
return data
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/395561.html
