Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Django';s选择DateWidget to day、month、year?_Django_Django Forms - Fatal编程技术网

如何更改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以使其正常工作。