problema con formato fecha de django

3,532 views
Skip to first unread message

ariel.glez.m

unread,
Jul 8, 2011, 12:13:47 PM7/8/11
to Django-es
Hola me esta devolviendo este error

Introduzca una fecha válida en formato AAAA-MM-DD.

El datepicker de jquery me entra las fechas asi 07/09/2011 y al
parecer django las reconoce asi 07-09-2011

Lo curioso es que if form.is_valid():

me las reconoce bien con el datepicker y sin embargo cuando voy a
comparar las fechas que me entran por el datepicker con las fechas de
base de datos que crea el django por defecto me sale el error de
validacion con fechas Introduzca una fecha válida en formato AAAA-MM-
DD.

Como se resuelve eso???

ariel.glez.m

unread,
Jul 8, 2011, 12:35:19 PM7/8/11
to Django-es
El asunto es mas complicado python entiende asi las fechas:

2011-07-08

Y el datepicker me las da en este formato

07/08/2011



ariel.glez.m ha escrito:

Andrés gutiérrez

unread,
Jul 8, 2011, 12:53:56 PM7/8/11
to djan...@googlegroups.com
Esto lo puedes resolver con un clean en el campo de tu fecha en tu form:

def clean_nombre_de_tu_campo(self):
  Y aqui recoges lo que te llega del datapicker y lo conviertes en datetime.
  from datetime import datetime
  fecha = datetime.strptime(fecha,"%d/%m/%Y")

Ves la idea?
Ahora solo te que hacer que el codigo funcione

--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
 Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
 Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.

Lina Comet

unread,
Jul 8, 2011, 1:04:45 PM7/8/11
to djan...@googlegroups.com
También podrías definir en un nuevo form cual sería el formato de fecha que vas a utilizar, y de esta forma utilizas esa definición para validar las fechas que requieras, yo lo habìa resolvido de esa forma.
Saludos
--
Lina Teresa Molinas Comet
http://linacomet.tumblr.com/

ariel.glez.m

unread,
Jul 8, 2011, 1:27:53 PM7/8/11
to Django-es
En python puro esta es la solucion y funciona ok,

import datetime

fecha_jquery = "21/12/2008"



fecha = datetime.datetime.strptime(fecha_jquery, "%d/%m/
%Y").strftime("%Y-%m-%d")



print fecha

en django me da este error

Exception Value:

time data did not match format: data=07/14/2011 fmt=%d/%m/%Y



On 8 jul, 13:04, Lina Comet <cometl...@gmail.com> wrote:
> También podrías definir en un nuevo form cual sería el formato de fecha que
> vas a utilizar, y de esta forma utilizas esa definición para validar las
> fechas que requieras, yo lo habìa resolvido de esa forma.
> Saludos
>
> El 8 de julio de 2011 12:53, Andrés gutiérrez <andresgut...@gmail.com>escribió:
>
>
>
> > Esto lo puedes resolver con un clean en el campo de tu fecha en tu form:
>
> > def clean_nombre_de_tu_campo(self):
> >   Y aqui recoges lo que te llega del datapicker y lo conviertes en
> > datetime.
> >   from datetime import datetime
> >   fecha = datetime.strptime(fecha,"%d/%m/%Y")
>
> > Ves la idea?
> > Ahora solo te que hacer que el codigo funcione
>

ariel.glez.m

unread,
Jul 8, 2011, 4:07:27 PM7/8/11
to Django-es
Ya me funciono ok de esta forma

fecha = request.POST.get('fecha_inicial')
fecha1 = datetime.datetime.strptime(fecha,"%d/%m/%Y").strftime("%Y-%m-
%d")

Lo que no entiendo pq de esta forma no funciona

fecha1 =
datetime.datetime.strptime(request.POST.get('fecha_inicial'),"%d/%m/
%Y").strftime("%Y-%m-%d")

ariel.glez.m

unread,
Jul 11, 2011, 9:22:32 AM7/11/11
to Django-es
Creo que el problema es que cuando pongo el
request.POST.get('fecha_inicial') dentro de la funcion,
el[request.POST.get('fecha_inicial')] es tambien una funcion no una
variable, y tal vez lo que se hace una llamada interna a esa otra
funcion y eso da problema, por que la funcion
datetime.datetime.strptime lo se le pasa son variables, no funciones.

Supongo que esa sea la respuesta

zodman

unread,
Jul 11, 2011, 2:16:55 PM7/11/11
to djan...@googlegroups.com
No te compliques..

usando https://docs.djangoproject.com/en/1.3/ref/forms/fields/#datefield

pasale parametro input_formats = ('%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y',)


Como tienes definido tu form ?

2011/7/11 ariel.glez.m <ariel....@gmail.com>:

--
Andres Vargas
www.zodman.com.mx

Reply all
Reply to author
Forward
0 new messages