1 from django
.conf
import settings
2 from django
.utils
.translation
import ugettext_lazy
as _
3 from django
.db
.models
.fields
import CharField
4 from django
.contrib
.localflavor
.us
.us_states
import STATE_CHOICES
6 class USStateField(CharField
):
8 description
= _("U.S. state (two uppercase letters)")
10 def __init__(self
, *args
, **kwargs
):
11 kwargs
['choices'] = STATE_CHOICES
12 kwargs
['max_length'] = 2
13 super(USStateField
, self
).__init
__(*args
, **kwargs
)
15 class PhoneNumberField(CharField
):
17 description
= _("Phone number")
19 def __init__(self
, *args
, **kwargs
):
20 kwargs
['max_length'] = 20
21 super(PhoneNumberField
, self
).__init
__(*args
, **kwargs
)
23 def formfield(self
, **kwargs
):
24 from django
.contrib
.localflavor
.us
.forms
import USPhoneNumberField
25 defaults
= {'form_class': USPhoneNumberField
}
26 defaults
.update(kwargs
)
27 return super(PhoneNumberField
, self
).formfield(**defaults
)