Campo Data do Formulário apartir do model não valida!

1,313 views
Skip to first unread message

Luiz Carlos

unread,
Jul 2, 2009, 12:05:50 PM7/2/09
to Django Brasil
Bom dia, procurei e não achei.

Como faço para que o formulário com origem na model com o campo
"data_de_nascimento = models.DateTimeField("Data de Nascimento")"
valide e salve data nesse formato "25/07/2009".
Desde de já agradeço atenção do grupo

Luiz Carlos

Fred Chevitarese

unread,
Jul 2, 2009, 1:13:28 PM7/2/09
to Django Brasil
Não sei se é possível salvar neste formato! Pois o formato datetime
acho que é padrão iso no banco de dados.
Da pra vc mudar o formato no momento da exibição.

Procura aí por Django datetime widget ... Você vai encontrar como
fazer no admin, se é que é no admin que você quer ;)
Se eu tiver falando bobagem me corrijam!!


Flw...

Diego Martins

unread,
Jul 2, 2009, 1:28:57 PM7/2/09
to django...@googlegroups.com
Ola Luis,

Quando o você utiliza o DateTimeField o Django utilizará a implementação equilavente para o banco de dados que vc esta utilizando para armezenar esse dado (Perceba que vc esta usando DateTimeField quando na verdade você precisa somente de um DateField).
Para apresentar os dados dessa maneira formatada que vc quer você poderá utilizar o DateField dos FORMULARIOS [1], ou formatar a data no template utilizando o filtro "date". [2]

[1] http://docs.djangoproject.com/en/dev/ref/forms/fields/#datefield (somente disponivel na versão do svn).
[2] http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date

hth
--
Diego Martins

2009/7/2 Fred Chevitarese <fchevi...@gmail.com>

Luiz Carlos Santos

unread,
Jul 2, 2009, 6:08:19 PM7/2/09
to django...@googlegroups.com
Então o termo correto é mudar o input o DateTimeField no form que tem como base o model.

Luiz Carlos

Diego Martins

unread,
Jul 2, 2009, 6:23:11 PM7/2/09
to django...@googlegroups.com
Sera que o que vc quer é so trocar o tipo default do ModelForm por um a sua escolha?

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


2009/7/2 Luiz Carlos Santos <h2o...@gmail.com>

Luiz Carlos Santos

unread,
Jul 2, 2009, 9:24:45 PM7/2/09
to django...@googlegroups.com

Boa noite,

Estava precisa mudar a forma de como o input do form com origem model do campo da data, para o form aceitar o formato de data 19/07/2008 quando gero o padrão só aceita o formato 07/19/2009 como faço para mudar.... achei esse
site: http://faces.eti.br/2009/02/18/fixing-date-input-in-django/ mas consegui entende. Já troquei por datefield mas o formato continuar o mesmo.
Desde já agradeço atenção.

Luiz Carlos

Gustavo Henrique

unread,
Jul 2, 2009, 10:44:29 PM7/2/09
to django...@googlegroups.com
no settings.py:

DATE_FORMAT = 'd/m/Y'
DATETIME_FORMAT = 'd/m/Y - H:i:s'

no forms.py:

from django.forms.widgets import DateTimeInput
class ClientForm(ModelForm):
birth = DateField(label=u'Data
Nascimento',required=False,widget=DateTimeInput(format='%d/%m/%Y'))

--
Gustavo Henrique
Site: http://www.gustavohenrique.net
Blog: http://blog.gustavohenrique.net

Luiz Carlos Santos

unread,
Jul 11, 2009, 5:51:58 AM7/11/09
to django...@googlegroups.com
Bom dia, pessoal

Estou aqui à abrir este post de novo porque não consigo fazer o input do datefield funcionar para esse formato 20/05/2009

Meu Settings;


DATE_FORMAT = 'd/m/Y'
DATETIME_FORMAT = 'd/m/Y - H:i:s'


Meu model;

pub_date = models.DateField()

Meu form;

pub_date = forms.DateField(label=u'Data Nascimento',required=False,widget=DateTimeInput(format='%d/%m/%Y'))

O que está errado?

Obrigado pela atenção

Luiz Carlos







Saulo

unread,
Jul 22, 2009, 4:49:39 PM7/22/09
to Django Brasil
e ae Luiz...

cara sou novo nessa onda de Django e estou com uma dificuldade q vc
tbm ja teve, sobre a formatação de data e hora, vc consegui resolver o
caso? qual foi a solução?

Luiz Carlos Santos

unread,
Jul 22, 2009, 7:49:02 PM7/22/09
to django...@googlegroups.com
Boa Noite, Saulo

Resolvi assim,


Meu forms.py

-------------------------------------------------------------------------------------------------------------------------------------
from django.forms.widgets import DateTimeInput

import time, datetime
from datetime import date

DATE_FORMAT = '%d/%m/%Y'


class FormattedDateInput(forms.DateTimeInput):
format = DATE_FORMAT

class FormCliente(forms.ModelForm):

data_de_nascimento = forms.DateField(label="Data",
input_formats=[DATE_FORMAT], widget=FormattedDateInput())


Qualquer coisa estou a disposição!!!

Luiz Carlos

Saulo

unread,
Jul 24, 2009, 8:11:13 AM7/24/09
to Django Brasil
E ae Luiz... Blz...

Cara, tem uma coisa aqui q ñ consegui captar, esse forms.ModelForm vem
de onde:

"class FormCliente(forms.ModelForm):"

Luiz Carlos Santos

unread,
Jul 24, 2009, 8:18:28 AM7/24/09
to django...@googlegroups.com
Bom dia, Saulo

(Forms.ModelForm) usar-se quando você que construir um formulário
apartir da model não esquece de importa ele (from django.forms import
ModelForm)

Luiz Carlos

Gustavo Henrique

unread,
Jul 24, 2009, 8:19:25 AM7/24/09
to django...@googlegroups.com
from django.forms import forms
from meuprojeto.minhapp.models import Cliente

class FormCliente(forms.ModelForm):
class Meta:
model = Cliente

dentro da class Meta voce pode definir quais campos não quer que
aparecam no form. Assim, tais campos nao passaram tambem pelo processo
de validacao.

class FormCliente(forms.ModelForm):
class Meta:
model = Cliente
exclude = ('campo1','campo2')

Reply all
Reply to author
Forward
0 new messages