como formatar campo de data? (DateField)

980 views
Skip to first unread message

Josueh Machado

unread,
May 22, 2010, 12:43:44 PM5/22/10
to Django Brasil
certa vez fiz uma aplicacao teste que um model X tinha um campo data e
a entrada tinha que ser no formato
"yyyy-mm-dd" e tive que definir um formato para entrada "dd-mm-yyyy" e
um OUTRO para a saida "dd-mm-yyyy" que obviamente, eh o mesmo.....

jah que eu acabei de me cadastrar aqui, resolvi tirar essa duvida ...
tenha uma maneira mais facil de trabalhar com datas???

eu penso que a melhor forma eh definir o formato no arquivo
settings.py mas, nao achei opcao pra isso... tem alguma???

pergundo isto na verdade, porque o codigo de formularios pra mim
(repito, pra mim) é muito sujo....
lá colocamos coisas referentes a modelos, validação e quando pensamos
que chega ao fim, temos que definir a parte de VISAO!!!! ou seja,
definir qual tamanho serah o campo lah no template, se ele estarah
ativo ou nao, etc

eu prefiro nao utilizar forms, acho que eh melhor deixar isso para o
template, o que voces acham?!?

valeu! (eh muito bom ter um lugar pra trocar ideias sobre django/
python !!!!) =)

--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

Luiz Carlos Santos

unread,
May 23, 2010, 12:12:51 AM5/23/10
to django...@googlegroups.com
Tem uma aplicação plugavel que se chama djano-utlis que resolve esse problema.

Luiz Carlos

Thiago Montenegro

unread,
May 23, 2010, 1:25:09 AM5/23/10
to django...@googlegroups.com

birth_date = forms.DateField(label=_('Date birth'), input_formats=['%d/%m/%Y','%Y-%m-%d',], required=False)

input_formats no seu DateField, no meu caso eu usei um ModelForm e fiz um override no elemento birth_date. 




2010/5/23 Luiz Carlos Santos <h2o...@gmail.com>

Josueh Machado

unread,
May 23, 2010, 5:06:53 PM5/23/10
to Django Brasil
vou dah uma olhada nessa aplicacao Luiz

e Thiago, eu fiz exatamente desta forma e achei codigo sujo...
detalhe, voce soh definiu o formato de entrada, ainda falta o formato
de saida
...
ou seja, ao meu ver, eh muita coisa pra um unico campo (e uma unica
linha!)

quao bom era se a definicao de entrada e saida de datas estivessem
definidas globalmente no settings.py ... um dia quem sab


valeu pessoal!
[]'s

On 23 maio, 02:25, Thiago Montenegro <openc...@gmail.com> wrote:
> birth_date = forms.DateField(label=_('Date birth'),
> input_formats=['%d/%m/%Y','%Y-%m-%d',], required=False)
>
> input_formats no seu DateField, no meu caso eu usei um ModelForm e fiz um
> override no elemento birth_date.
>
> 2010/5/23 Luiz Carlos Santos <h2ol...@gmail.com>

Henr"Ikke" Pereira

unread,
May 23, 2010, 5:18:47 PM5/23/10
to django...@googlegroups.com

Tem várias settings de L10N e I18N no Django (e várias novidades uteis no Django 1.2 como a definição dos input formats direto no settings.py).

Sugiro dar uma olhada em:
DATE_FORMAT [1]
DATE_INPUT_FORMATS [2]
DATETIME_FORMAT [3]
DATETIME_INPUT_FORMATS [4]

Se tu não quiser definir direto no settings.py, e para ajudar no processo de L10N [5], o Django 1.2 deixa tu setar um FORMAT_MODULE_PATH [6] que vai apontar pro diretório onde fica um arquivo formats.py onde tu pode configurar as seguintes definições, de acordo com a localização do usuário: DATE_FORMAT, TIME_FORMAT, DATETIME_FORMAT, YEAR_MONTH_FORMAT, MONTH_DAY_FORMAT, SHORT_DATE_FORMAT, SHORT_DATETIME_FORMAT, FIRST_DAY_OF_WEEK, DECIMAL_SEPARATOR, THOUSAND_SEPARATOR e NUMBER_GROUPING.



2010/5/23 Josueh Machado <jmm...@gmail.com>

Josueh Machado

unread,
May 23, 2010, 5:25:25 PM5/23/10
to Django Brasil
blz, valeu! vou pesquisar

On 23 maio, 18:18, "Henr\"Ikke\" Pereira" <ikk...@gmail.com> wrote:
> Tem várias settings de L10N e I18N no Django (e várias novidades uteis no
> Django 1.2 como a definição dos input formats direto no settings.py).
>
> Sugiro dar uma olhada em:
> DATE_FORMAT [1]
> DATE_INPUT_FORMATS [2]
> DATETIME_FORMAT [3]
> DATETIME_INPUT_FORMATS [4]
>
> Se tu não quiser definir direto no settings.py, e para ajudar no processo de
> L10N [5], o Django 1.2 deixa tu setar um FORMAT_MODULE_PATH [6] que vai
> apontar pro diretório onde fica um arquivo formats.py onde tu pode
> configurar as seguintes definições, de acordo com a localização do usuário:
> DATE_FORMAT, TIME_FORMAT, DATETIME_FORMAT, YEAR_MONTH_FORMAT,
> MONTH_DAY_FORMAT, SHORT_DATE_FORMAT, SHORT_DATETIME_FORMAT,
> FIRST_DAY_OF_WEEK, DECIMAL_SEPARATOR, THOUSAND_SEPARATOR e NUMBER_GROUPING.
>
> [1]http://docs.djangoproject.com/en/dev/ref/settings/#date-format
> [2]http://docs.djangoproject.com/en/dev/ref/settings/#date-input-formats
> [3]http://docs.djangoproject.com/en/dev/ref/settings/#datetime-format
> [4]http://docs.djangoproject.com/en/dev/ref/settings/#datetime-input-for...
> [5]http://docs.djangoproject.com/en/dev/topics/i18n/localization/#format...
Reply all
Reply to author
Forward
0 new messages