如何更改Django';s选择DateWidget to day、month、year?
表格如下:如何更改Django';s选择DateWidget to day、month、year?,django,django-forms,Django,Django Forms,表格如下: 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) thi
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\u格式设置定义:
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中的DATE\u格式更改为jn,Y
。如果查看django/forms/extras/widgets.py
中定义了SelectDateWidget的地方,则呈现函数包含此代码片段
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))
\u parse\u date\u fmt
使用get\u格式(“date\u格式”)
看起来可以在settings.py中设置DATE\u格式
我快了40秒!耶!:-)谢谢我还需要将USE\u L10N设置为False以使其正常工作。