Ticket #10969: localflavor.us.models.usstatefield.2.diff

File localflavor.us.models.usstatefield.2.diff, 2.4 KB (added by Paul McLanahan, 15 years ago)

Updated version that actually works.

  • django/contrib/localflavor/us/models.py

     
    11from django.conf import settings
    2 from django.db.models.fields import Field
     2from django.db.models.fields import Field, CharField
    33
    4 class USStateField(Field):
    5     def get_internal_type(self):
    6         return "USStateField"
    7        
    8     def db_type(self):
    9         if settings.DATABASE_ENGINE == 'oracle':
    10             return 'CHAR(2)'
    11         else:
    12             return 'varchar(2)'
    13    
    14     def formfield(self, **kwargs):
    15         from django.contrib.localflavor.us.forms import USStateSelect
    16         defaults = {'widget': USStateSelect}
    17         defaults.update(kwargs)
    18         return super(USStateField, self).formfield(**defaults)
     4class USStateField(models.CharField):
     5    def __init__(self, *args, **kwargs):
     6        kwargs['choices'] = STATE_CHOICES
     7        kwargs['max_length'] = 2
     8        super(USStateField, self).__init__(*args, **kwargs)
    199
    2010class PhoneNumberField(Field):
    2111    def get_internal_type(self):
  • django/contrib/localflavor/us/models.py

     
    11from django.conf import settings
    2 from django.db.models.fields import Field
     2from django.db.models.fields import Field, CharField
     3from django.contrib.localflavor.us.us_states import STATE_CHOICES
    34
    4 class USStateField(Field):
    5     def get_internal_type(self):
    6         return "USStateField"
    7        
    8     def db_type(self):
    9         if settings.DATABASE_ENGINE == 'oracle':
    10             return 'CHAR(2)'
    11         else:
    12             return 'varchar(2)'
    13    
    14     def formfield(self, **kwargs):
    15         from django.contrib.localflavor.us.forms import USStateSelect
    16         defaults = {'widget': USStateSelect}
    17         defaults.update(kwargs)
    18         return super(USStateField, self).formfield(**defaults)
     5class USStateField(models.CharField):
     6    def __init__(self, *args, **kwargs):
     7        kwargs['choices'] = STATE_CHOICES
     8        kwargs['max_length'] = 2
     9        super(USStateField, self).__init__(*args, **kwargs)
    1910
    2011class PhoneNumberField(Field):
    2112    def get_internal_type(self):
Back to Top