valores por defecto en model form

1,060 views
Skip to first unread message

copia

unread,
Aug 9, 2012, 9:59:19 PM8/9/12
to djan...@googlegroups.com
Buenas noches desde Perú.
Pasa que acabo de crear un formulario desde el modelo:
class MovimientoCajaForm(ModelForm):

    class Meta:
        f_pago = date.today()
        model = MovimientoCaja

Y en mi modelo defini un campo que debe tener un dato por defecto:
     f_pago = models.DateField(default=date.today())

Pero cuando valido el formulario, me dice que f_pago esta vacio, ¿Como puedo hacer para que guarde ese valor por defecto y no me de problemas en validación?

Jhónatan Mosquera

unread,
Aug 9, 2012, 10:29:23 PM8/9/12
to djan...@googlegroups.com
No seria mejor definir en el modelo el campo f_pago que tenga el atributo de  "auto_now_add=True"???
--
------------------------------------------
Jhónatan Mosquera Tabra

Hernan Bruno

unread,
Aug 10, 2012, 7:48:50 AM8/10/12
to djan...@googlegroups.com
Hola, Deberias usar el parámetro initial cuando creas el formulario. De la siguiente forma:

form = MovimientoCajaForm(initial={'f_pago': date.today()}) 


copia

unread,
Aug 10, 2012, 10:11:18 AM8/10/12
to djan...@googlegroups.com
Gracias, Jhónatan gracias me acabo de enterar que existia.

Hernan gracias... queria usar un initial pero no sabia como hacerlo.

Saludos.

zodman

unread,
Aug 10, 2012, 2:26:37 PM8/10/12
to djan...@googlegroups.com
la definicion del default en tu modelo es hasta que se guarde te pone
el default.

cuando haces form.is_valid() el campo aun no se ah guardado osea que
no se pone date.today() todavia.


Podrias hacer


class MovimientoCajaForm(ModelForm):

class Meta:
exclude = ("f_pago",)
model = MovimientoCaja

Y ese campo ya no te lo muestra en el form y se brinca la validacion
de f.is_valid() si no tienes que pasarle al form initial


2012/8/9 copia <eyc...@gmail.com>:
> Buenas noches desde Perú.
> Pasa que acabo de crear un formulario desde el modelo:
>
> Y en mi modelo defini un campo que debe tener un dato por defecto:
> f_pago = models.DateField(default=date.today())
>
> Pero cuando valido el formulario, me dice que f_pago esta vacio, ¿Como puedo
> hacer para que guarde ese valor por defecto y no me de problemas en
> validación?
>
> --
> 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.

copia

unread,
Aug 10, 2012, 2:32:52 PM8/10/12
to djan...@googlegroups.com
Gracias.
Reply all
Reply to author
Forward
0 new messages