Alterar mensagem "Este campo é obrigatório"

678 views
Skip to first unread message

flaudizio

unread,
Mar 12, 2009, 10:17:39 AM3/12/09
to Django Brasil
Bom dia pessoal, como posso alterar a mensagem padrão de validação de
form: "Este campo é obrigatório" ?

classe do formulário:

class FormPost( ModelForm ):
class Meta:
model = Post
exclude = ( 'data_cadastro' )

obrigado

Vinicius Mendes

unread,
Mar 12, 2009, 12:38:54 PM3/12/09
to django...@googlegroups.com
Tenta isso:


class FormPost( ModelForm ):
    class Meta:
        model = Post
        exclude = ( 'data_cadastro' )
    def __init__(self, *args, **kwargs):
        super(FormPost, self).__init__(*args, **kwargs)
        self.fields['nome_do_campo'].error_messages['required'] = u'Nova mensagem de erro.'

--------

Vinícius Mendes
Engenheiro de Computação
Meio Código - A peça que faltava para o seu código!

URL
http://www.meiocodigo.com


2009/3/12 flaudizio <flau...@gmail.com>

Arthur Furlan

unread,
Mar 15, 2009, 4:21:02 PM3/15/09
to django...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Olá,

Vinicius Mendes wrote:
> Tenta isso:
>
> class FormPost( ModelForm ):
> class Meta:
> model = Post
> exclude = ( 'data_cadastro' )
> def __init__(self, *args, **kwargs):
> super(FormPost, self).__init__(*args, **kwargs)
> self.fields['nome_do_campo'].error_messages['required'] = u'Nova
> mensagem de erro.'

Existem também a opção de alterar as mensangen de erro durante a
declaração da classe como mostrado na documentação do Django[1].

[1]. http://docs.djangoproject.com/en/dev/ref/forms/fields/#error-messages


- --
Atenciosamente,

Arthur Furlan
arthur...@gmail.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkm9Yy4ACgkQHiIxAB175NxoBwCgnV1Puq/e6bJJlRJOEF7B0jQQ
ZOgAoLYaeDnebawsnv1HBC8WYpRYWqKt
=4pxK
-----END PGP SIGNATURE-----

Vinicius Mendes

unread,
Mar 15, 2009, 6:08:06 PM3/15/09
to django...@googlegroups.com


2009/3/15 Arthur Furlan <arthur...@gmail.com>


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Olá,

Vinicius Mendes wrote:
> Tenta isso:
>
> class FormPost( ModelForm ):
>     class Meta:
>         model = Post
>         exclude = ( 'data_cadastro' )
>     def __init__(self, *args, **kwargs):
>         super(FormPost, self).__init__(*args, **kwargs)
>         self.fields['nome_do_campo'].error_messages['required'] = u'Nova
> mensagem de erro.'

       Existem também a opção de alterar as mensangen de erro durante a
declaração da classe como mostrado na documentação do Django[1].

[1]. http://docs.djangoproject.com/en/dev/ref/forms/fields/#error-messages

Mas assim ele teria que redeclarar o campo. Se ele tem por exemplo um campo no model, aí no form ele redeclara para alterar a mensagem de erro. Aí ele muda o campo do model, então ele teria q mudar o campo do form tb. Dessa forma que eu falei, ele declara somente a mensagem de erro, sem precisar redeclarar o campo.

Arthur Furlan

unread,
Mar 15, 2009, 6:31:10 PM3/15/09
to django...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Vinicius Mendes wrote:
> 2009/3/15 Arthur Furlan <arthur...@gmail.com
> <mailto:arthur...@gmail.com>>


>
>
> Olá,
>
> Vinicius Mendes wrote:
>> Tenta isso:
>
>> class FormPost( ModelForm ):
>> class Meta:
>> model = Post
>> exclude = ( 'data_cadastro' )
>> def __init__(self, *args, **kwargs):
>> super(FormPost, self).__init__(*args, **kwargs)
>> self.fields['nome_do_campo'].error_messages['required'] =
> u'Nova
>> mensagem de erro.'
>
> Existem também a opção de alterar as mensangen de erro durante a
> declaração da classe como mostrado na documentação do Django[1].
>
> [1].
> http://docs.djangoproject.com/en/dev/ref/forms/fields/#error-messages
>
>
>> Mas assim ele teria que redeclarar o campo. Se ele tem por exemplo um
>> campo no model, aí no form ele redeclara para alterar a mensagem de
>> erro. Aí ele muda o campo do model, então ele teria q mudar o campo do
>> form tb. Dessa forma que eu falei, ele declara somente a mensagem de
>> erro, sem precisar redeclarar o campo.

Perfeito, da forma como você falou, fica mais genérico mesmo. :)

Eu mesmo acabo utilizando isso apenas em formulários que não são
FormModel's (o que *não* é o caso dele) por causa disso, mas sempre acho
interessante citar a documentação oficial, mesmo que não seja a melhor
opção no momento.


- --
Atenciosamente,

Arthur Furlan
arthur...@gmail.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkm9ga4ACgkQHiIxAB175Nz7YACdEaG97WXAbQ/+lao4ZkvTpybe
hakAniB5zJn6cdlUfEzMMBzQM242kN5v
=7dVh
-----END PGP SIGNATURE-----

Reply all
Reply to author
Forward
0 new messages