models.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from django.utils.translation import ugettext_lazy as _
  2. from django.db.models.fields import CharField
  3. from django.contrib.localflavor.au.au_states import STATE_CHOICES
  4. from django.contrib.localflavor.au import forms
  5. class AUStateField(CharField):
  6. description = _("Australian State")
  7. def __init__(self, *args, **kwargs):
  8. kwargs['choices'] = STATE_CHOICES
  9. kwargs['max_length'] = 3
  10. super(AUStateField, self).__init__(*args, **kwargs)
  11. class AUPostCodeField(CharField):
  12. description = _("Australian Postcode")
  13. def __init__(self, *args, **kwargs):
  14. kwargs['max_length'] = 4
  15. super(AUPostCodeField, self).__init__(*args, **kwargs)
  16. def formfield(self, **kwargs):
  17. defaults = {'form_class': forms.AUPostCodeField}
  18. defaults.update(kwargs)
  19. return super(AUPostCodeField, self).formfield(**defaults)
  20. class AUPhoneNumberField(CharField):
  21. description = _("Australian Phone number")
  22. def __init__(self, *args, **kwargs):
  23. kwargs['max_length'] = 20
  24. super(AUPhoneNumberField, self).__init__(*args, **kwargs)
  25. def formfield(self, **kwargs):
  26. defaults = {'form_class': forms.AUPhoneNumberField}
  27. defaults.update(kwargs)
  28. return super(AUPhoneNumberField, self).formfield(**defaults)