diff options
| author | Justin Bronn <jbronn@gmail.com> | 2008-02-28 21:24:51 +0000 |
|---|---|---|
| committer | Justin Bronn <jbronn@gmail.com> | 2008-02-28 21:24:51 +0000 |
| commit | 22e016ff6c18a35a450519b94de63033f83e6b4f (patch) | |
| tree | 1e58cc40a636b4e4f3dcf429a5a116c015c36278 /django/db/models/fields/__init__.py | |
| parent | 0b52413cc926446f238fd781b4def6804f64d231 (diff) | |
gis: Merged revisions 7105-7168 via svnmerge from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@7176 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/db/models/fields/__init__.py')
| -rw-r--r-- | django/db/models/fields/__init__.py | 78 |
1 files changed, 65 insertions, 13 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 383000d0aa..d16bb9d15d 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -228,7 +228,11 @@ class Field(object): value = int(value) except ValueError: raise ValueError("The __year lookup type requires an integer argument") - return ['%s-01-01 00:00:00' % value, '%s-12-31 23:59:59.999999' % value] + if settings.DATABASE_ENGINE == 'sqlite3': + first = '%s-01-01' + else: + first = '%s-01-01 00:00:00' + return [first % value, '%s-12-31 23:59:59.999999' % value] raise TypeError("Field has invalid lookup: %s" % lookup_type) def has_default(self): @@ -451,6 +455,9 @@ class BooleanField(Field): kwargs['blank'] = True Field.__init__(self, *args, **kwargs) + def get_internal_type(self): + return "BooleanField" + def to_python(self, value): if value in (True, False): return value if value in ('t', 'True', '1'): return True @@ -469,6 +476,9 @@ class CharField(Field): def get_manipulator_field_objs(self): return [oldforms.TextField] + def get_internal_type(self): + return "CharField" + def to_python(self, value): if isinstance(value, basestring): return value @@ -499,6 +509,9 @@ class DateField(Field): kwargs['blank'] = True Field.__init__(self, verbose_name, name, **kwargs) + def get_internal_type(self): + return "DateField" + def to_python(self, value): if value is None: return value @@ -568,6 +581,9 @@ class DateField(Field): return super(DateField, self).formfield(**defaults) class DateTimeField(DateField): + def get_internal_type(self): + return "DateTimeField" + def to_python(self, value): if value is None: return value @@ -638,6 +654,9 @@ class DecimalField(Field): self.max_digits, self.decimal_places = max_digits, decimal_places Field.__init__(self, verbose_name, name, **kwargs) + def get_internal_type(self): + return "DecimalField" + def to_python(self, value): if value is None: return value @@ -697,9 +716,6 @@ class EmailField(CharField): kwargs['max_length'] = kwargs.get('max_length', 75) CharField.__init__(self, *args, **kwargs) - def get_internal_type(self): - return "CharField" - def get_manipulator_field_objs(self): return [oldforms.EmailField] @@ -717,6 +733,9 @@ class FileField(Field): kwargs['max_length'] = kwargs.get('max_length', 100) Field.__init__(self, verbose_name, name, **kwargs) + def get_internal_type(self): + return "FileField" + def get_db_prep_save(self, value): "Returns field's value prepared for saving into a database." # Need to convert UploadedFile objects provided via a form to unicode for database insertion @@ -826,12 +845,18 @@ class FilePathField(Field): def get_manipulator_field_objs(self): return [curry(oldforms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)] + def get_internal_type(self): + return "FilePathField" + class FloatField(Field): empty_strings_allowed = False def get_manipulator_field_objs(self): return [oldforms.FloatField] + def get_internal_type(self): + return "FloatField" + def formfield(self, **kwargs): defaults = {'form_class': forms.FloatField} defaults.update(kwargs) @@ -854,6 +879,9 @@ class ImageField(FileField): if not self.height_field: setattr(cls, 'get_%s_height' % self.name, curry(cls._get_FIELD_height, field=self)) + def get_internal_type(self): + return "ImageField" + def save_file(self, new_data, new_object, original_object, change, rel, save=True): FileField.save_file(self, new_data, new_object, original_object, change, rel, save) # If the image has height and/or width field(s) and they haven't @@ -876,6 +904,9 @@ class IntegerField(Field): def get_manipulator_field_objs(self): return [oldforms.IntegerField] + def get_internal_type(self): + return "IntegerField" + def formfield(self, **kwargs): defaults = {'form_class': forms.IntegerField} defaults.update(kwargs) @@ -890,6 +921,9 @@ class IPAddressField(Field): def get_manipulator_field_objs(self): return [oldforms.IPAddressField] + def get_internal_type(self): + return "IPAddressField" + def validate(self, field_data, all_data): validators.isValidIPAddress4(field_data, None) @@ -904,6 +938,9 @@ class NullBooleanField(Field): kwargs['null'] = True Field.__init__(self, *args, **kwargs) + def get_internal_type(self): + return "NullBooleanField" + def to_python(self, value): if value in (None, True, False): return value if value in ('None'): return None @@ -923,6 +960,9 @@ class PhoneNumberField(IntegerField): def get_manipulator_field_objs(self): return [oldforms.PhoneNumberField] + def get_internal_type(self): + return "PhoneNumberField" + def validate(self, field_data, all_data): validators.isValidPhone(field_data, all_data) @@ -936,6 +976,9 @@ class PositiveIntegerField(IntegerField): def get_manipulator_field_objs(self): return [oldforms.PositiveIntegerField] + def get_internal_type(self): + return "PositiveIntegerField" + def formfield(self, **kwargs): defaults = {'min_value': 0} defaults.update(kwargs) @@ -945,6 +988,9 @@ class PositiveSmallIntegerField(IntegerField): def get_manipulator_field_objs(self): return [oldforms.PositiveSmallIntegerField] + def get_internal_type(self): + return "PositiveSmallIntegerField" + def formfield(self, **kwargs): defaults = {'min_value': 0} defaults.update(kwargs) @@ -959,14 +1005,23 @@ class SlugField(CharField): kwargs['db_index'] = True super(SlugField, self).__init__(*args, **kwargs) + def get_internal_type(self): + return "SlugField" + class SmallIntegerField(IntegerField): def get_manipulator_field_objs(self): return [oldforms.SmallIntegerField] + def get_internal_type(self): + return "SmallIntegerField" + class TextField(Field): def get_manipulator_field_objs(self): return [oldforms.LargeTextField] + def get_internal_type(self): + return "TextField" + def formfield(self, **kwargs): defaults = {'widget': forms.Textarea} defaults.update(kwargs) @@ -980,6 +1035,9 @@ class TimeField(Field): kwargs['editable'] = False Field.__init__(self, verbose_name, name, **kwargs) + def get_internal_type(self): + return "TimeField" + def get_db_prep_lookup(self, lookup_type, value): if settings.DATABASE_ENGINE == 'oracle': # Oracle requires a date in order to parse. @@ -1044,9 +1102,6 @@ class URLField(CharField): def get_manipulator_field_objs(self): return [oldforms.URLField] - def get_internal_type(self): - return "CharField" - def formfield(self, **kwargs): defaults = {'form_class': forms.URLField, 'verify_exists': self.verify_exists} defaults.update(kwargs) @@ -1056,6 +1111,9 @@ class USStateField(Field): def get_manipulator_field_objs(self): return [oldforms.USStateField] + def get_internal_type(self): + return "USStateField" + def formfield(self, **kwargs): from django.contrib.localflavor.us.forms import USStateSelect defaults = {'widget': USStateSelect} @@ -1067,9 +1125,6 @@ class XMLField(TextField): self.schema_path = schema_path Field.__init__(self, verbose_name, name, **kwargs) - def get_internal_type(self): - return "TextField" - def get_manipulator_field_objs(self): return [curry(oldforms.XMLLargeTextField, schema_path=self.schema_path)] @@ -1080,8 +1135,5 @@ class OrderingField(IntegerField): kwargs['null'] = True IntegerField.__init__(self, **kwargs ) - def get_internal_type(self): - return "IntegerField" - def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True): return [oldforms.HiddenField(name_prefix + self.name)] |
