问题描述
|
形式如下:
from django.forms.extras.widgets import SelectDateWidget
class EntryForm(forms.ModelForm):
class Meta():
model = Entry
def __init__(self,*args,**kwargs):
super(EntryForm,self).__init__(*args,**kwargs)
this_year = datetime.date.today().year
years = range(this_year-100,this_year+1)
years.reverse()
self.fields[\"date_of_birth\"].widget = SelectDateWidget(years=years)
出生日期字段的显示方式如下
如何更改它,使其呈现为日,月,年?
解决方法
从此小部件的源代码中,我看到下拉列表的顺序由
DATE_FORMAT
设置定义:
format = get_format(\'DATE_FORMAT\')
escaped = False
output = []
for char in format:
if escaped:
escaped = False
elif char == \'\\\\\':
escaped = True
elif char in \'Yy\':
output.append(year_html)
elif char in \'bFMmNn\':
output.append(month_html)
elif char in \'dj\':
output.append(day_html)
例如,尝试将settings.py中的ѭ1更改为j N,Y
。
,如果在定义SelectDateWidget的ѭ5中查找,则render函数包含此代码段。
90 output = []
91 for field in _parse_date_fmt():
92 if field == \'year\':
93 output.append(year_html)
94 elif field == \'month\':
95 output.append(month_html)
96 elif field == \'day\':
97 output.append(day_html)
98 return mark_safe(u\'\\n\'.join(output))
_parse_date_fmt
使用get_format(\'DATE_FORMAT\')
看起来可以在settings.py中设置DATE_FORMAT
https://docs.djangoproject.com/en/dev/ref/settings/#date-format