Django

Code

Changeset 8819

Show
Ignore:
Timestamp:
09/01/08 17:15:35 (3 months ago)
Author:
jacob
Message:

Fixed #8210 and #8664: moved USStateField and PhoneNumberField to django.contrib.localflavor.us. This is a backwards-incompatible change, albeit a minor one; just add an aditional import and go on your way.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/gis/tests/relatedapp/models.py

    r8219 r8819  
    11from django.contrib.gis.db import models 
     2from django.contrib.localflavor.us.models import USStateField 
    23 
    34class Location(models.Model): 
     
    89class City(models.Model): 
    910    name = models.CharField(max_length=50) 
    10     state = models.USStateField() 
     11    state = USStateField() 
    1112    location = models.ForeignKey(Location) 
    1213    objects = models.GeoManager() 
  • django/trunk/django/contrib/gis/utils/layermapping.py

    r8219 r8819  
    119119from django.contrib.gis.models import GeometryColumns, SpatialRefSys 
    120120from django.db import models, transaction 
     121from django.contrib.localflavor.us.models import USStateField 
    121122 
    122123# LayerMapping exceptions. 
     
    151152        models.TextField : OFTString, 
    152153        models.URLField : OFTString, 
    153         models.USStateField : OFTString, 
     154        USStateField : OFTString, 
    154155        models.XMLField : OFTString, 
    155156        models.SmallIntegerField : (OFTInteger, OFTReal, OFTString), 
  • django/trunk/django/db/backends/mysql/creation.py

    r8296 r8819  
    2222        'NullBooleanField':  'bool', 
    2323        'OneToOneField':     'integer', 
    24         'PhoneNumberField':  'varchar(20)', 
    2524        'PositiveIntegerField': 'integer UNSIGNED', 
    2625        'PositiveSmallIntegerField': 'smallint UNSIGNED', 
     
    2928        'TextField':         'longtext', 
    3029        'TimeField':         'time', 
    31         'USStateField':      'varchar(2)', 
    3230    } 
    3331 
  • django/trunk/django/db/backends/oracle/creation.py

    r8330 r8819  
    3131        'NullBooleanField':             'NUMBER(1) CHECK ((%(qn_column)s IN (0,1)) OR (%(qn_column)s IS NULL))', 
    3232        'OneToOneField':                'NUMBER(11)', 
    33         'PhoneNumberField':             'VARCHAR2(20)', 
    3433        'PositiveIntegerField':         'NUMBER(11) CHECK (%(qn_column)s >= 0)', 
    3534        'PositiveSmallIntegerField':    'NUMBER(11) CHECK (%(qn_column)s >= 0)', 
     
    3938        'TimeField':                    'TIMESTAMP', 
    4039        'URLField':                     'VARCHAR2(%(max_length)s)', 
    41         'USStateField':                 'CHAR(2)', 
    4240    } 
    4341 
  • django/trunk/django/db/backends/postgresql/creation.py

    r8296 r8819  
    2222        'NullBooleanField':  'boolean', 
    2323        'OneToOneField':     'integer', 
    24         'PhoneNumberField':  'varchar(20)', 
    2524        'PositiveIntegerField': 'integer CHECK ("%(column)s" >= 0)', 
    2625        'PositiveSmallIntegerField': 'smallint CHECK ("%(column)s" >= 0)', 
     
    2928        'TextField':         'text', 
    3029        'TimeField':         'time', 
    31         'USStateField':      'varchar(2)', 
    3230    } 
    3331 
  • django/trunk/django/db/backends/sqlite3/creation.py

    r8402 r8819  
    2323        'NullBooleanField':             'bool', 
    2424        'OneToOneField':                'integer', 
    25         'PhoneNumberField':             'varchar(20)', 
    2625        'PositiveIntegerField':         'integer unsigned', 
    2726        'PositiveSmallIntegerField':    'smallint unsigned', 
     
    3029        'TextField':                    'text', 
    3130        'TimeField':                    'time', 
    32         'USStateField':                 'varchar(2)', 
    3331    } 
    3432     
  • django/trunk/django/db/models/fields/__init__.py

    r8816 r8819  
    742742        return super(NullBooleanField, self).formfield(**defaults) 
    743743 
    744 class PhoneNumberField(Field): 
    745     def get_internal_type(self): 
    746         return "PhoneNumberField" 
    747  
    748     def formfield(self, **kwargs): 
    749         from django.contrib.localflavor.us.forms import USPhoneNumberField 
    750         defaults = {'form_class': USPhoneNumberField} 
    751         defaults.update(kwargs) 
    752         return super(PhoneNumberField, self).formfield(**defaults) 
    753  
    754744class PositiveIntegerField(IntegerField): 
    755745    def get_internal_type(self): 
     
    877867        return super(URLField, self).formfield(**defaults) 
    878868 
    879 class USStateField(Field): 
    880     def get_internal_type(self): 
    881         return "USStateField" 
    882  
    883     def formfield(self, **kwargs): 
    884         from django.contrib.localflavor.us.forms import USStateSelect 
    885         defaults = {'widget': USStateSelect} 
    886         defaults.update(kwargs) 
    887         return super(USStateField, self).formfield(**defaults) 
    888  
    889869class XMLField(TextField): 
    890870    def __init__(self, verbose_name=None, name=None, schema_path=None, **kwargs): 
  • django/trunk/docs/ref/contrib/localflavor.txt

    r8738 r8819  
    650650    A form ``Select`` widget that uses a list of U.S. states/territories as its 
    651651    choices. 
     652 
     653.. class:: us.models.USStateField 
     654 
     655    A model field that forms represent as a ``forms.USStateField`` field and 
     656    stores the two-letter U.S. state abbreviation in the database. 
  • django/trunk/docs/ref/models/fields.txt

    r8787 r8819  
    706706:attr:`~CharField.max_length`, a default of 200 is used. 
    707707 
    708 ``USStateField`` 
    709 ---------------- 
    710  
    711 .. class:: USStateField([**options]) 
    712  
    713 A two-letter U.S. state abbreviation. The admin represents this as an ``<input 
    714 type="text">`` (a single-line input). 
    715  
    716708``XMLField`` 
    717709------------ 
  • django/trunk/docs/topics/db/models.txt

    r8788 r8819  
    626626For example, this model has a few custom methods:: 
    627627 
     628    from django.contrib.localflavor.us.models import USStateField 
    628629    class Person(models.Model): 
    629630        first_name = models.CharField(max_length=50) 
     
    632633        address = models.CharField(max_length=100) 
    633634        city = models.CharField(max_length=50) 
    634         state = models.USStateField() # Yes, this is America-centric... 
     635        state = USStateField() # Yes, this is America-centric... 
    635636 
    636637        def baby_boomer_status(self): 
  • django/trunk/docs/topics/forms/modelforms.txt

    r8805 r8819  
    7474    ``URLField``                     ``URLField`` with ``verify_exists`` set 
    7575                                     to the model field's ``verify_exists`` 
    76     ``USStateField``                 ``CharField`` with 
    77                                      ``widget=USStateSelect`` 
    78                                      (``USStateSelect`` is from 
    79                                      ``django.contrib.localflavor.us``) 
    8076    ``XMLField``                     ``CharField`` with ``widget=Textarea`` 
    8177    ===============================  ======================================== 
  • django/trunk/tests/modeltests/model_forms/models.py

    r8806 r8819  
    8383        return "%s is %s" % (self.writer, self.age) 
    8484 
     85from django.contrib.localflavor.us.models import PhoneNumberField 
    8586class PhoneNumber(models.Model): 
    86     phone = models.PhoneNumberField() 
     87    phone = PhoneNumberField() 
    8788    description = models.CharField(max_length=20) 
    8889 
  • django/trunk/tests/regressiontests/serializers_regress/models.py

    r8321 r8819  
    99from django.contrib.contenttypes import generic 
    1010from django.contrib.contenttypes.models import ContentType 
     11from django.contrib.localflavor.us.models import USStateField, PhoneNumberField 
    1112 
    1213# The following classes are for testing basic data 
     
    5354 
    5455class PhoneData(models.Model): 
    55     data = models.PhoneNumberField(null=True) 
     56    data = PhoneNumberField(null=True) 
    5657 
    5758class PositiveIntegerData(models.Model): 
     
    7475 
    7576class USStateData(models.Model): 
    76     data = models.USStateField(null=True) 
     77    data = USStateField(null=True) 
    7778 
    7879class XMLData(models.Model): 
     
    189190 
    190191class PhonePKData(models.Model): 
    191     data = models.PhoneNumberField(primary_key=True) 
     192    data = PhoneNumberField(primary_key=True) 
    192193 
    193194class PositiveIntegerPKData(models.Model): 
     
    210211 
    211212class USStatePKData(models.Model): 
    212     data = models.USStateField(primary_key=True) 
     213    data = USStateField(primary_key=True) 
    213214 
    214215# class XMLPKData(models.Model):