Commit 2135befd authored by Karen Tracey's avatar Karen Tracey
Browse files

Fixed #10969: Made US State field a CharField, fixing a few oddities in its...

Fixed #10969: Made US State field a CharField, fixing a few oddities in its behavior.  Thanks Paul McLanahan.



git-svn-id: http://code.djangoproject.com/svn/django/trunk@11857 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 07ba0dba
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -303,6 +303,7 @@ answer newbie questions, and generally made Django that much better:
    Jason McBrayer <http://www.carcosa.net/jason/>
    Kevin McConnell <kevin.mcconnell@gmail.com>
    mccutchen@gmail.com
    Paul McLanahan <paul@mclanahan.net>
    Tobias McNulty <http://www.caktusgroup.com/blog>
    Christian Metts
    michael.mcewan@gmail.com
+9 −18
Original line number Diff line number Diff line
from django.conf import settings
from django.db.models.fields import Field
from django.db.models.fields import Field, CharField
from django.contrib.localflavor.us.us_states import STATE_CHOICES
  
class USStateField(Field): 
class USStateField(CharField):
    """U.S. state (two uppercase letters)"""
    def get_internal_type(self): 
        return "USStateField" 
        
    def db_type(self):
        if settings.DATABASE_ENGINE == 'oracle':
            return 'CHAR(2)'
        else:
            return 'varchar(2)'
    
    def formfield(self, **kwargs): 
        from django.contrib.localflavor.us.forms import USStateSelect 
        defaults = {'widget': USStateSelect} 
        defaults.update(kwargs) 
        return super(USStateField, self).formfield(**defaults)
    def __init__(self, *args, **kwargs):
        kwargs['choices'] = STATE_CHOICES
        kwargs['max_length'] = 2
        super(USStateField, self).__init__(*args, **kwargs)
  
class PhoneNumberField(Field):
    """Phone number"""
+0 −0

Empty file added.

+14 −0
Original line number Diff line number Diff line
from django.forms import ModelForm
from models import Place

class PlaceForm(ModelForm):
    """docstring for PlaceForm"""
    class Meta:
        model = Place
from django.forms import ModelForm
from models import Place

class PlaceForm(ModelForm):
    """docstring for PlaceForm"""
    class Meta:
        model = Place
+16 −0
Original line number Diff line number Diff line
from django.db import models
from django.contrib.localflavor.us.models import USStateField

class Place(models.Model):
    state = USStateField(blank=True)
    state_req = USStateField()
    state_default = USStateField(default="CA", blank=True)
    name = models.CharField(max_length=20)
from django.db import models
from django.contrib.localflavor.us.models import USStateField

class Place(models.Model):
    state = USStateField(blank=True)
    state_req = USStateField()
    state_default = USStateField(default="CA", blank=True)
    name = models.CharField(max_length=20)
Loading