I noticed that there is no class us.models.USZipCodeField in django.contrib.localflavor.us, although there is a model for phone numbers. The django guide for submitting patches says to discuss alternatives here first, so I wanted to do just that. I cobbled together some code by copying the phone number code and modifying it. I discovered some buggy behaviour at first with max_length, so I ended up modifying the form as well by removing the argument for it, since I saw no purpose in it. This brings it into line with the other forms, none of whom specify max length. I removed min length while I was at it, for consistency.
The new form is identical to the old form, only with max and min length removed: class USZipCodeField(RegexField): default_error_messages = { 'invalid': _('Enter a zip code in the format XXXXX or XXXXX- XXXX.'), } def __init__(self, *args, **kwargs): super(USZipCodeField, self).__init__(r'^\d{5}(?:-\d{4})?$', *args, **kwargs) The new model is extremely similar to the telephone number model: class ZipCodeField(CharField): description = _("Zip code") def __init__(self, *args, **kwargs): kwargs['max_length'] = 10 super(ZipCodeField, self).__init__(*args, **kwargs) def formfield(self, **kwargs): from django.contrib.localflavor.us.forms import USZipCodeField defaults = {'form_class': USZipCodeField} defaults.update(kwargs) return super(ZipCodeField, self).formfield(**defaults) Thoughts? Concerns? Should this be modified? It seems to work just fine for me. -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-develop...@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.