如何将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     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...