Django Forms Date Format

4,868 views
Skip to first unread message

Aldo

unread,
Dec 15, 2008, 9:57:07 AM12/15/08
to Django users
I am using django forms. I have created a model/form with 2 fields,
name and date.

Prior to saving the form i check if the form is_valid?

if form.is_valid():
form.save()

My problem is it wants the date in the format - MM/DD/YYYY
Otherwise it will not see the form as valid - and not save.

How can i change this I want the date in the format DD/MM/YYYY

Please help

Aldo

unread,
Dec 15, 2008, 10:25:45 AM12/15/08
to Django users
Let me add, that my model contains this

mydate = models.DateTimeField().input_formats = ('%Y.%m.%d %H:%M:%S',)

But when i use the input_formats arg it allows my field to accept any
numeric data
eg: 2342342/42354235 is now accepted.

Lars Stavholm

unread,
Dec 15, 2008, 10:28:32 AM12/15/08
to django...@googlegroups.com

Maybe setting DATE_FORMAT in settings.py could help.

http://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#date-format

/Lars

Aldo

unread,
Dec 15, 2008, 10:40:05 AM12/15/08
to Django users
Yes I have tried that but still nothing - thats what lead me to
looking at this!
> http://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#date-...
>
> /Lars

Lars Stavholm

unread,
Dec 15, 2008, 10:44:08 AM12/15/08
to django...@googlegroups.com
Aldo wrote:
> Yes I have tried that but still nothing - thats what lead me to
> looking at this!

Try with "USE_I18N = False" in settings.py.
Some sort of known issue, I do believe there's
a ticket somewhere confirming this.
/L

Aldo

unread,
Dec 15, 2008, 10:55:38 AM12/15/08
to Django users
Still no good lars. Thanks though.

Karen Tracey

unread,
Dec 15, 2008, 1:24:58 PM12/15/08
to django...@googlegroups.com
On Mon, Dec 15, 2008 at 10:55 AM, Aldo <marcw...@gmail.com> wrote:

Still no good lars. Thanks though.

http://docs.djangoproject.com/en/dev/ref/forms/fields/#datefield

documents how to override the default valid date formats for input to a DateField.

http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overriding-the-default-field-types

describes how to override the default fields created by a ModelForm.  So I think you want to override the field in your ModelForm and specify a different list of valid date input formats.

Karen

Aldo

unread,
Dec 16, 2008, 4:47:11 AM12/16/08
to Django users
Thanks Karen,

Using a combination of both the links you provided I sorted it.

I just needed to change my form slightly
class MyForm(ModelForm):
mydate = forms.DateTimeField(input_formats=['%d-%m-%Y'])
class Meta:
model = MyObject

Thanks again for pointing me the right direction.

On Dec 15, 6:24 pm, "Karen Tracey" <kmtra...@gmail.com> wrote:
> On Mon, Dec 15, 2008 at 10:55 AM, Aldo <marcwar...@gmail.com> wrote:
>
> > Still no good lars. Thanks though.
>
> http://docs.djangoproject.com/en/dev/ref/forms/fields/#datefield
>
> documents how to override the default valid date formats for input to a
> DateField.
>
> http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overrid...
Reply all
Reply to author
Forward
0 new messages