Opened 2 years ago

Last modified 18 months ago

#23049 new Bug

Admin DateField doesn't support all DATE_INPUT_FORMATS

Reported by: Patrick Dwyer <pat@…> Owned by: nobody
Component: contrib.admin Version: 1.6
Severity: Normal Keywords:
Cc: Ed Henderson Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


According to the documentation formats listed at are supported as DATE_INPUT_FORMATS. I have started using the date format "Thu 17 Jul 2014" represented by '%a %d %b %Y' as my DATE_FORMAT and the first listed DATE_INPUT_FORMAT but I am having issues on admin pages. The date picker calendar popups don't work correctly.

On initial page load the date is formatted correctly. When selecting the 17th of July 2014 from the calendar instead of getting "Thu 17 Jul 2014" the field is populated with "undefined 17 undefined 2014".

Looking at the code in admin/static/js/core.js these are the supported format characters...

        c: this.toString(),
        d: this.getTwoDigitDate(),
        H: this.getTwoDigitHour(),
        I: this.getTwoDigitTwelveHour(),
        m: this.getTwoDigitMonth(),
        M: this.getTwoDigitMinute(),
        p: (this.getHours() >= 12) ? 'PM' : 'AM',
        S: this.getTwoDigitSecond(),
        w: '0' + this.getDay(),
        x: this.toLocaleDateString(),
        X: this.toLocaleTimeString(),
        y: ('' + this.getFullYear()).substr(2, 4),
        Y: '' + this.getFullYear(),
        '%' : '%'

I think an "almost core" part of Django like admin should support what is documented or the documentation should be updated to reflect the actual behaviour.

I'm writing a simple fix for my own use. Although I'd be happy to start working on a real fix but don't want to waste time if this won't be considered.

Change History (4)

comment:1 Changed 2 years ago by Patrick Dwyer

Needs documentation: unset
Needs tests: unset
Patch needs improvement: unset

Without much investigation this could be tricky to implement in a way that was locale aware (that could be the reason this hasn't been done already).

comment:2 Changed 2 years ago by Patrick Dwyer

I've just checked against the current master and stable/1.7.x branches and they seem to have the same limitation.

comment:3 Changed 2 years ago by Tim Graham

Triage Stage: UnreviewedAccepted

comment:4 Changed 18 months ago by Ed Henderson

Cc: Ed Henderson added

The latest documentation does not claim that all of the Python date formats are supported.

There is a specific list of formats supported by default, which does not include the format you are using.

What documentation leads you to believe that all of the formats should be supported?

Note: See TracTickets for help on using tickets.
Back to Top