如何解决如何将Django的SelectDateWidget的顺序更改为日,月,年?
| 形式如下: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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。