Changeset 8819
- Timestamp:
- 09/01/08 17:15:35 (3 months ago)
- Files:
-
- django/trunk/django/contrib/gis/tests/relatedapp/models.py (modified) (2 diffs)
- django/trunk/django/contrib/gis/utils/layermapping.py (modified) (2 diffs)
- django/trunk/django/contrib/localflavor/us/models.py (added)
- django/trunk/django/db/backends/mysql/creation.py (modified) (2 diffs)
- django/trunk/django/db/backends/oracle/creation.py (modified) (2 diffs)
- django/trunk/django/db/backends/postgresql/creation.py (modified) (2 diffs)
- django/trunk/django/db/backends/sqlite3/creation.py (modified) (2 diffs)
- django/trunk/django/db/models/fields/__init__.py (modified) (2 diffs)
- django/trunk/docs/ref/contrib/localflavor.txt (modified) (1 diff)
- django/trunk/docs/ref/models/fields.txt (modified) (1 diff)
- django/trunk/docs/topics/db/models.txt (modified) (2 diffs)
- django/trunk/docs/topics/forms/modelforms.txt (modified) (1 diff)
- django/trunk/tests/modeltests/model_forms/models.py (modified) (1 diff)
- django/trunk/tests/regressiontests/serializers_regress/models.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/contrib/gis/tests/relatedapp/models.py
r8219 r8819 1 1 from django.contrib.gis.db import models 2 from django.contrib.localflavor.us.models import USStateField 2 3 3 4 class Location(models.Model): … … 8 9 class City(models.Model): 9 10 name = models.CharField(max_length=50) 10 state = models.USStateField()11 state = USStateField() 11 12 location = models.ForeignKey(Location) 12 13 objects = models.GeoManager() django/trunk/django/contrib/gis/utils/layermapping.py
r8219 r8819 119 119 from django.contrib.gis.models import GeometryColumns, SpatialRefSys 120 120 from django.db import models, transaction 121 from django.contrib.localflavor.us.models import USStateField 121 122 122 123 # LayerMapping exceptions. … … 151 152 models.TextField : OFTString, 152 153 models.URLField : OFTString, 153 models.USStateField : OFTString,154 USStateField : OFTString, 154 155 models.XMLField : OFTString, 155 156 models.SmallIntegerField : (OFTInteger, OFTReal, OFTString), django/trunk/django/db/backends/mysql/creation.py
r8296 r8819 22 22 'NullBooleanField': 'bool', 23 23 'OneToOneField': 'integer', 24 'PhoneNumberField': 'varchar(20)',25 24 'PositiveIntegerField': 'integer UNSIGNED', 26 25 'PositiveSmallIntegerField': 'smallint UNSIGNED', … … 29 28 'TextField': 'longtext', 30 29 'TimeField': 'time', 31 'USStateField': 'varchar(2)',32 30 } 33 31 django/trunk/django/db/backends/oracle/creation.py
r8330 r8819 31 31 'NullBooleanField': 'NUMBER(1) CHECK ((%(qn_column)s IN (0,1)) OR (%(qn_column)s IS NULL))', 32 32 'OneToOneField': 'NUMBER(11)', 33 'PhoneNumberField': 'VARCHAR2(20)',34 33 'PositiveIntegerField': 'NUMBER(11) CHECK (%(qn_column)s >= 0)', 35 34 'PositiveSmallIntegerField': 'NUMBER(11) CHECK (%(qn_column)s >= 0)', … … 39 38 'TimeField': 'TIMESTAMP', 40 39 'URLField': 'VARCHAR2(%(max_length)s)', 41 'USStateField': 'CHAR(2)',42 40 } 43 41 django/trunk/django/db/backends/postgresql/creation.py
r8296 r8819 22 22 'NullBooleanField': 'boolean', 23 23 'OneToOneField': 'integer', 24 'PhoneNumberField': 'varchar(20)',25 24 'PositiveIntegerField': 'integer CHECK ("%(column)s" >= 0)', 26 25 'PositiveSmallIntegerField': 'smallint CHECK ("%(column)s" >= 0)', … … 29 28 'TextField': 'text', 30 29 'TimeField': 'time', 31 'USStateField': 'varchar(2)',32 30 } 33 31 django/trunk/django/db/backends/sqlite3/creation.py
r8402 r8819 23 23 'NullBooleanField': 'bool', 24 24 'OneToOneField': 'integer', 25 'PhoneNumberField': 'varchar(20)',26 25 'PositiveIntegerField': 'integer unsigned', 27 26 'PositiveSmallIntegerField': 'smallint unsigned', … … 30 29 'TextField': 'text', 31 30 'TimeField': 'time', 32 'USStateField': 'varchar(2)',33 31 } 34 32 django/trunk/django/db/models/fields/__init__.py
r8816 r8819 742 742 return super(NullBooleanField, self).formfield(**defaults) 743 743 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 USPhoneNumberField750 defaults = {'form_class': USPhoneNumberField}751 defaults.update(kwargs)752 return super(PhoneNumberField, self).formfield(**defaults)753 754 744 class PositiveIntegerField(IntegerField): 755 745 def get_internal_type(self): … … 877 867 return super(URLField, self).formfield(**defaults) 878 868 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 USStateSelect885 defaults = {'widget': USStateSelect}886 defaults.update(kwargs)887 return super(USStateField, self).formfield(**defaults)888 889 869 class XMLField(TextField): 890 870 def __init__(self, verbose_name=None, name=None, schema_path=None, **kwargs): django/trunk/docs/ref/contrib/localflavor.txt
r8738 r8819 650 650 A form ``Select`` widget that uses a list of U.S. states/territories as its 651 651 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 706 706 :attr:`~CharField.max_length`, a default of 200 is used. 707 707 708 ``USStateField``709 ----------------710 711 .. class:: USStateField([**options])712 713 A two-letter U.S. state abbreviation. The admin represents this as an ``<input714 type="text">`` (a single-line input).715 716 708 ``XMLField`` 717 709 ------------ django/trunk/docs/topics/db/models.txt
r8788 r8819 626 626 For example, this model has a few custom methods:: 627 627 628 from django.contrib.localflavor.us.models import USStateField 628 629 class Person(models.Model): 629 630 first_name = models.CharField(max_length=50) … … 632 633 address = models.CharField(max_length=100) 633 634 city = models.CharField(max_length=50) 634 state = models.USStateField() # Yes, this is America-centric...635 state = USStateField() # Yes, this is America-centric... 635 636 636 637 def baby_boomer_status(self): django/trunk/docs/topics/forms/modelforms.txt
r8805 r8819 74 74 ``URLField`` ``URLField`` with ``verify_exists`` set 75 75 to the model field's ``verify_exists`` 76 ``USStateField`` ``CharField`` with77 ``widget=USStateSelect``78 (``USStateSelect`` is from79 ``django.contrib.localflavor.us``)80 76 ``XMLField`` ``CharField`` with ``widget=Textarea`` 81 77 =============================== ======================================== django/trunk/tests/modeltests/model_forms/models.py
r8806 r8819 83 83 return "%s is %s" % (self.writer, self.age) 84 84 85 from django.contrib.localflavor.us.models import PhoneNumberField 85 86 class PhoneNumber(models.Model): 86 phone = models.PhoneNumberField()87 phone = PhoneNumberField() 87 88 description = models.CharField(max_length=20) 88 89 django/trunk/tests/regressiontests/serializers_regress/models.py
r8321 r8819 9 9 from django.contrib.contenttypes import generic 10 10 from django.contrib.contenttypes.models import ContentType 11 from django.contrib.localflavor.us.models import USStateField, PhoneNumberField 11 12 12 13 # The following classes are for testing basic data … … 53 54 54 55 class PhoneData(models.Model): 55 data = models.PhoneNumberField(null=True)56 data = PhoneNumberField(null=True) 56 57 57 58 class PositiveIntegerData(models.Model): … … 74 75 75 76 class USStateData(models.Model): 76 data = models.USStateField(null=True)77 data = USStateField(null=True) 77 78 78 79 class XMLData(models.Model): … … 189 190 190 191 class PhonePKData(models.Model): 191 data = models.PhoneNumberField(primary_key=True)192 data = PhoneNumberField(primary_key=True) 192 193 193 194 class PositiveIntegerPKData(models.Model): … … 210 211 211 212 class USStatePKData(models.Model): 212 data = models.USStateField(primary_key=True)213 data = USStateField(primary_key=True) 213 214 214 215 # class XMLPKData(models.Model):
