你如何将Django的SelectDateWidget的顺序改为日,月,年?

Nei*_*eil 5 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)
        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)
Run Code Online (Sandbox Code Playgroud)

出生日期字段就是这样呈现的

在此输入图像描述

如何更改它以使其呈现为日,月,年?

And*_*eev 6

从这个小部件的源代码我看到下拉顺序是通过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)    
Run Code Online (Sandbox Code Playgroud)

例如,尝试将DATE_FORMATsettings.py 更改j N, Y为.

  • 谢谢.我还需要将USE_L10N设置为False以使其正常工作. (5认同)