Je ne connais pas un seul champ de formulaire pour les adresses, mais vous pouvez utiliser localflavor
pour valider l'entrée et un combo de MultiWidget
et MultiValueField
pour créer un champ d'adresse. Le mien ressemble à quelque chose comme ceci:
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)
...
Il y a plus de code en jeu, mais il est un peu beaucoup à coller ici. Cette information devrait vous conduire dans la bonne direction. Remarque: depuis le 21 novembre 2013, localflavor a été déplacé vers un package externe (available on PyPi).