I donβt know any form fields for addresses, but you can use localflavor to check the input and combo MultiWidget and MultiValueField to create an address field. My looks something like this:
class SplitAddressWidget(forms.MultiWidget): def __init__(self, attrs=None): widgets = [] widgets.append(forms.TextInput(attrs=attrs)) widgets.append(forms.TextInput(attrs=attrs)) widgets.append(forms.TextInput(attrs=attrs)) widgets.append(forms.TextInput(attrs=attrs)) widgets.append(forms.TextInput(attrs=attrs)) super(SplitAddressWidget, self).__init__(widgets, attrs) ... class SplitAddressField(forms.MultiValueField): widget = SplitAddressWidget def __init__(self, *args, **kwargs): fields = ( forms.CharField(required=kwargs['required']), forms.CharField(required=0), forms.CharField(required=kwargs['required']), USStateField(required=kwargs['required']), USZipCodeField(required=kwargs['required']), ) super(SplitAddressField, self).__init__(fields, *args, **kwargs) ...
There is more code, but insert a little here. This information should lead you in the right direction.
Note: from November 21, 2013 localflavor has been moved to an external package ( available in PyPi ).
source share