Changeset 5822 for django/branches/schema-evolution/django/db
- Timestamp:
- 08/06/07 11:50:17 (1 year ago)
- Files:
-
- django/branches/schema-evolution/django/db/backends/ado_mssql/creation.py (modified) (2 diffs)
- django/branches/schema-evolution/django/db/backends/mysql/creation.py (modified) (2 diffs)
- django/branches/schema-evolution/django/db/backends/mysql_old/creation.py (modified) (2 diffs)
- django/branches/schema-evolution/django/db/backends/oracle/creation.py (modified) (1 diff)
- django/branches/schema-evolution/django/db/backends/postgresql/creation.py (modified) (2 diffs)
- django/branches/schema-evolution/django/db/backends/sqlite3/creation.py (modified) (2 diffs)
- django/branches/schema-evolution/django/db/backends/sqlite3/introspection.py (modified) (1 diff)
- django/branches/schema-evolution/django/db/models/fields/__init__.py (modified) (14 diffs)
- django/branches/schema-evolution/django/db/models/fields/related.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/schema-evolution/django/db/backends/ado_mssql/creation.py
r5734 r5822 2 2 'AutoField': 'int IDENTITY (1, 1)', 3 3 'BooleanField': 'bit', 4 'CharField': 'varchar(%(max length)s)',5 'CommaSeparatedIntegerField': 'varchar(%(max length)s)',4 'CharField': 'varchar(%(max_length)s)', 5 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', 6 6 'DateField': 'smalldatetime', 7 7 'DateTimeField': 'smalldatetime', … … 18 18 'PositiveIntegerField': 'int CONSTRAINT [CK_int_pos_%(column)s] CHECK ([%(column)s] > 0)', 19 19 'PositiveSmallIntegerField': 'smallint CONSTRAINT [CK_smallint_pos_%(column)s] CHECK ([%(column)s] > 0)', 20 'SlugField': 'varchar(%(max length)s)',20 'SlugField': 'varchar(%(max_length)s)', 21 21 'SmallIntegerField': 'smallint', 22 22 'TextField': 'text', django/branches/schema-evolution/django/db/backends/mysql/creation.py
r5734 r5822 6 6 'AutoField': 'integer AUTO_INCREMENT', 7 7 'BooleanField': 'bool', 8 'CharField': 'varchar(%(max length)s)',9 'CommaSeparatedIntegerField': 'varchar(%(max length)s)',8 'CharField': 'varchar(%(max_length)s)', 9 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', 10 10 'DateField': 'date', 11 11 'DateTimeField': 'datetime', … … 22 22 'PositiveIntegerField': 'integer UNSIGNED', 23 23 'PositiveSmallIntegerField': 'smallint UNSIGNED', 24 'SlugField': 'varchar(%(max length)s)',24 'SlugField': 'varchar(%(max_length)s)', 25 25 'SmallIntegerField': 'smallint', 26 26 'TextField': 'longtext', django/branches/schema-evolution/django/db/backends/mysql_old/creation.py
r5734 r5822 6 6 'AutoField': 'integer AUTO_INCREMENT', 7 7 'BooleanField': 'bool', 8 'CharField': 'varchar(%(max length)s)',9 'CommaSeparatedIntegerField': 'varchar(%(max length)s)',8 'CharField': 'varchar(%(max_length)s)', 9 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', 10 10 'DateField': 'date', 11 11 'DateTimeField': 'datetime', … … 22 22 'PositiveIntegerField': 'integer UNSIGNED', 23 23 'PositiveSmallIntegerField': 'smallint UNSIGNED', 24 'SlugField': 'varchar(%(max length)s)',24 'SlugField': 'varchar(%(max_length)s)', 25 25 'SmallIntegerField': 'smallint', 26 26 'TextField': 'longtext', django/branches/schema-evolution/django/db/backends/oracle/creation.py
r5734 r5822 9 9 'AutoField': 'NUMBER(11)', 10 10 'BooleanField': 'NUMBER(1) CHECK (%(column)s IN (0,1))', 11 'CharField': 'NVARCHAR2(%(max length)s)',12 'CommaSeparatedIntegerField': 'VARCHAR2(%(max length)s)',11 'CharField': 'NVARCHAR2(%(max_length)s)', 12 'CommaSeparatedIntegerField': 'VARCHAR2(%(max_length)s)', 13 13 'DateField': 'DATE', 14 14 'DateTimeField': 'TIMESTAMP', django/branches/schema-evolution/django/db/backends/postgresql/creation.py
r5734 r5822 6 6 'AutoField': 'serial', 7 7 'BooleanField': 'boolean', 8 'CharField': 'varchar(%(max length)s)',9 'CommaSeparatedIntegerField': 'varchar(%(max length)s)',8 'CharField': 'varchar(%(max_length)s)', 9 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', 10 10 'DateField': 'date', 11 11 'DateTimeField': 'timestamp with time zone', … … 22 22 'PositiveIntegerField': 'integer CHECK ("%(column)s" >= 0)', 23 23 'PositiveSmallIntegerField': 'smallint CHECK ("%(column)s" >= 0)', 24 'SlugField': 'varchar(%(max length)s)',24 'SlugField': 'varchar(%(max_length)s)', 25 25 'SmallIntegerField': 'smallint', 26 26 'TextField': 'text', django/branches/schema-evolution/django/db/backends/sqlite3/creation.py
r5734 r5822 5 5 'AutoField': 'integer', 6 6 'BooleanField': 'bool', 7 'CharField': 'varchar(%(max length)s)',8 'CommaSeparatedIntegerField': 'varchar(%(max length)s)',7 'CharField': 'varchar(%(max_length)s)', 8 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', 9 9 'DateField': 'date', 10 10 'DateTimeField': 'datetime', … … 21 21 'PositiveIntegerField': 'integer unsigned', 22 22 'PositiveSmallIntegerField': 'smallint unsigned', 23 'SlugField': 'varchar(%(max length)s)',23 'SlugField': 'varchar(%(max_length)s)', 24 24 'SmallIntegerField': 'smallint', 25 25 'TextField': 'text', django/branches/schema-evolution/django/db/backends/sqlite3/introspection.py
r5787 r5822 138 138 m = re.search(r'^\s*(?:var)?char\s*\(\s*(\d+)\s*\)\s*$', key) 139 139 if m: 140 return ('CharField', {'max length': int(m.group(1))})140 return ('CharField', {'max_length': int(m.group(1))}) 141 141 raise KeyError 142 142 django/branches/schema-evolution/django/db/models/fields/__init__.py
r5788 r5822 12 12 from django.utils.translation import ugettext_lazy, ugettext as _ 13 13 from django.utils.encoding import smart_unicode, force_unicode, smart_str 14 from django.utils.maxlength import LegacyMaxlength 14 15 import datetime, os, time 15 16 try: … … 64 65 65 66 class Field(object): 67 # Provide backwards compatibility for the maxlength attribute and 68 # argument for this class and all subclasses. 69 __metaclass__ = LegacyMaxlength 66 70 67 71 # Designates whether empty strings fundamentally are allowed at the … … 73 77 74 78 def __init__(self, verbose_name=None, name=None, primary_key=False, 75 max length=None, unique=False, blank=False, null=False, db_index=False,79 max_length=None, unique=False, blank=False, null=False, db_index=False, 76 80 core=False, rel=None, default=NOT_PROVIDED, editable=True, serialize=True, 77 81 prepopulate_from=None, unique_for_date=None, unique_for_month=None, … … 81 85 self.verbose_name = verbose_name 82 86 self.primary_key = primary_key 83 self.max length, self.unique = maxlength, unique87 self.max_length, self.unique = max_length, unique 84 88 self.blank, self.null = blank, null 85 89 # Oracle treats the empty string ('') as null, so coerce the null … … 246 250 def prepare_field_objs_and_params(self, manipulator, name_prefix): 247 251 params = {'validator_list': self.validator_list[:]} 248 if self.max length and not self.choices: # Don't give SelectFields a maxlength parameter.249 params['max length'] = self.maxlength252 if self.max_length and not self.choices: # Don't give SelectFields a max_length parameter. 253 params['max_length'] = self.max_length 250 254 251 255 if self.choices: … … 378 382 choices = property(_get_choices) 379 383 384 def save_form_data(self, instance, data): 385 setattr(instance, self.name, data) 386 380 387 def formfield(self, form_class=forms.CharField, **kwargs): 381 388 "Returns a django.newforms.Field instance for this database Field." … … 463 470 464 471 def formfield(self, **kwargs): 465 defaults = {'max_length': self.max length}472 defaults = {'max_length': self.max_length} 466 473 defaults.update(kwargs) 467 474 return super(CharField, self).formfield(**defaults) … … 672 679 class EmailField(CharField): 673 680 def __init__(self, *args, **kwargs): 674 kwargs['max length'] = 75681 kwargs['max_length'] = 75 675 682 CharField.__init__(self, *args, **kwargs) 676 683 … … 693 700 self.upload_to = upload_to 694 701 Field.__init__(self, verbose_name, name, **kwargs) 702 703 def get_db_prep_save(self, value): 704 "Returns field's value prepared for saving into a database." 705 # Need to convert UploadedFile objects provided via a form to unicode for database insertion 706 if value is None: 707 return None 708 return unicode(value) 695 709 696 710 def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True): … … 770 784 return os.path.normpath(f) 771 785 786 def save_form_data(self, instance, data): 787 if data: 788 getattr(instance, "save_%s_file" % self.name)(os.path.join(self.upload_to, data.filename), data.content, save=False) 789 790 def formfield(self, **kwargs): 791 defaults = {'form_class': forms.FileField} 792 # If a file has been provided previously, then the form doesn't require 793 # that a new file is provided this time. 794 if 'initial' in kwargs: 795 defaults['required'] = False 796 defaults.update(kwargs) 797 return super(FileField, self).formfield(**defaults) 798 772 799 class FilePathField(Field): 773 800 def __init__(self, verbose_name=None, name=None, path='', match=None, recursive=False, **kwargs): … … 818 845 new_object.save() 819 846 847 def formfield(self, **kwargs): 848 defaults = {'form_class': forms.ImageField} 849 return super(ImageField, self).formfield(**defaults) 850 820 851 class IntegerField(Field): 821 852 empty_strings_allowed = False … … 831 862 empty_strings_allowed = False 832 863 def __init__(self, *args, **kwargs): 833 kwargs['max length'] = 15864 kwargs['max_length'] = 15 834 865 Field.__init__(self, *args, **kwargs) 835 866 … … 879 910 class SlugField(Field): 880 911 def __init__(self, *args, **kwargs): 881 kwargs['max length'] = kwargs.get('maxlength', 50)912 kwargs['max_length'] = kwargs.get('max_length', 50) 882 913 kwargs.setdefault('validator_list', []).append(validators.isSlug) 883 914 # Set db_index=True unless it's been set manually. … … 965 996 class URLField(CharField): 966 997 def __init__(self, verbose_name=None, name=None, verify_exists=True, **kwargs): 967 kwargs['max length'] = kwargs.get('maxlength', 200)998 kwargs['max_length'] = kwargs.get('max_length', 200) 968 999 if verify_exists: 969 1000 kwargs.setdefault('validator_list', []).append(validators.isExistingURL) django/branches/schema-evolution/django/db/models/fields/related.py
r5734 r5822 757 757 return getattr(obj, self.attname).all() 758 758 759 def save_form_data(self, instance, data): 760 setattr(instance, self.attname, data) 761 759 762 def formfield(self, **kwargs): 760 763 defaults = {'form_class': forms.ModelMultipleChoiceField, 'queryset': self.rel.to._default_manager.all()}
