from django.utils.translation import ugettext as _ from django.db import models STATES = ( ('AK', _('Alaska')), ('AL', _('Alabama')), ('AR', _('Arkansas')), ('AZ', _('Arizona')), ('CA', _('California')), ('CO', _('Colorado')), ('CT', _('Connecticut')), ('DE', _('Delaware')), ('FL', _('Florida')), ('GA', _('Georgia')), ('HI', _('Hawaii')), ('IA', _('Iowa')), ('ID', _('Idaho')), ('IL', _('Illinois')), ('IN', _('Indiana')), ('KS', _('Kansas')), ('KY', _('Kentucky')), ('LA', _('Louisiana')), ('MA', _('Massachusetts')), ('MD', _('Maryland')), ('ME', _('Maine')), ('MI', _('Michigan')), ('MN', _('Minnesota')), ('MO', _('Missouri')), ('MS', _('Mississippi')), ('MT', _('Montana')), ('NC', _('North Carolina')), ('ND', _('North Dakota')), ('NE', _('Nebraska')), ('NH', _('New Hampshire')), ('NJ', _('New Jersey')), ('NM', _('New Mexico')), ('NV', _('Nevada')), ('NY', _('New York')), ('OH', _('Ohio')), ('OK', _('Oklahoma')), ('OR', _('Oregon')), ('PA', _('Pennsylvania')), ('RI', _('Rhode Island')), ('SC', _('South Carolina')), ('SD', _('South Dakota')), ('TN', _('Tennessee')), ('TX', _('Texas')), ('UT', _('Utah')), ('VT', _('Vermont')), ('VA', _('Virginia')), ('WA', _('Washington')), ('WI', _('Wisconsin')), ('WV', _('West Virginia')), ('WY', _('Wyoming')), ) class StateField(models.CharField): def __init__(self, *args, **kwargs): kwargs.setdefault('max_length', 2) kwargs.setdefault('choices', STATES) super(StateField, self).__init__(*args, **kwargs) def get_internal_type(self): return "CharField"