Alterar mensagem default de validação de forms

254 views
Skip to first unread message

Michael

unread,
Oct 24, 2012, 7:25:47 AM10/24/12
to django...@googlegroups.com
Bom dia galera!

Seguinte, estou tentando fazer algo simples, mas que está me dando um pouco de dor de cabeça.
Gostaria de alterar a mensagem "This field is required" da validação dos forms.
Procurei e encontrei sempre a mesma solução:

class MyForm(forms.Form):
    some_field = forms.CharField(error_messages="Campo obrigatorio")

O problema é que se tenho varias forms, eu teria que fazer isso para todos campos, e isso é trabalho de corno! :)
Existe alguma forma de alterar essa mensagem de modo que todos forms sejam fetados?


Rafael Novello

unread,
Oct 24, 2012, 7:31:51 AM10/24/12
to django...@googlegroups.com
Michael,

Acho que vc poderia criar uma classe que herde de froms.Form, fazer essa alteração nela e fazer com q seus formulários herdem dela. Não testei, mas acho que seja possível.

Um abraço!
--
 
 


--
Atenciosamente,
Rafael Novello.

Twitter: @rafa_novello

Michael Jackson

unread,
Oct 24, 2012, 7:38:07 AM10/24/12
to django...@googlegroups.com
Eu encontrei essa solução, mas é meio feia:

def __init__(self, *args, **kwargs):
        for field in self.base_fields:
            self.base_fields[field].error_messages['required'] = 'Este campo é obrigatório!'
        super(FormRegistro, self).__init__(*args, **kwargs)

Soa a gambiarra :)

Rafael Novello

unread,
Oct 24, 2012, 9:36:47 AM10/24/12
to django...@googlegroups.com
Cara, se o objetivo é apenas traduzir a mensagem, não seria apenas mudar o TIME_ZONE no settings do Django??


Atenciosamente,
Rafael Novello.

Twitter: @rafa_novello



2012/10/24 Michael Jackson <tah...@gmail.com>

--
 
 

luan fonceca

unread,
Oct 24, 2012, 9:37:39 AM10/24/12
to django...@googlegroups.com
# Local time zone for this installation. Choices can be found here:
# although not all choices may be available on all operating systems.
# On Unix systems, a value of None will cause Django to use the same
# timezone as the operating system.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'America/Chicago'

# Language code for this installation. All choices can be found here:
LANGUAGE_CODE = 'pt-BR'


muda o language code também!

2012/10/24 Rafael Novello <rafa.rei...@gmail.com>
--
 
 



--
  • Software Engineering student at the Universidade Federal do Rio Grande do Norte;
  • Front-end Designer and Developer;
  • Python/Django Developer at the multmeio.com.br.

luan fonceca

unread,
Oct 24, 2012, 9:38:25 AM10/24/12
to django...@googlegroups.com
Com isso todas as mensagens e labels nativos do Django vão ser traduzidos automaticamente.

2012/10/24 luan fonceca <luanf...@gmail.com>
Reply all
Reply to author
Forward
0 new messages