Skip to content

Instantly share code, notes, and snippets.

@becker990
Created June 18, 2015 19:14
Show Gist options
  • Save becker990/5989373c9f5ca7f72c09 to your computer and use it in GitHub Desktop.
Save becker990/5989373c9f5ca7f72c09 to your computer and use it in GitHub Desktop.
Uma classe em python para o django forms que valida estados brasileiros
# -*- coding: utf-8 -*-
from django.forms import fields, util, Form
class EstadoField(fields.CharField):
default_error_messages = {
'invalid' : u'Este campo não é um Estado da União Federal.',
'required' : u'Este campo é obrigatório.',
'out_of_range': u'Este campo deve ser igual a 2 letras.',
}
def clean(self, value):
estados = [ "AC","AL","AM","AP","BA",
"CE","DF","ES","GO","MA",
"MT","MS","MG","PA","PB",
"PR","PE","PI","RJ","RN",
"RO","RS","RR","SC","SE",
"SP","TO"]
value = super(EstadoField, self).clean(value)
if not len(value) == 2:
raise util.ValidationError(self.error_messages['out_of_range'])
if not value.upper() in estados:
raise util.ValidationError(self.error_messages['invalid'])
return value
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment