diff options
| author | Boulder Sprinters <boulder-sprinters@djangoproject.com> | 2007-04-13 17:50:19 +0000 |
|---|---|---|
| committer | Boulder Sprinters <boulder-sprinters@djangoproject.com> | 2007-04-13 17:50:19 +0000 |
| commit | 48c0460605d64576a66c601e59ae5bca8853447f (patch) | |
| tree | 23630c48aa92d800b192eba2e8af856cfbedd594 | |
| parent | 8051e715b94186cdf16d356bfe82b506af4e74eb (diff) | |
boulder-oracle-sprint: Made DateField.get_db_prep_save convert datetime.date objects to datetime.datetime, since cx_Oracle doesn't handle datetime.date under Python 2.3.
git-svn-id: http://code.djangoproject.com/svn/django/branches/boulder-oracle-sprint@5006 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/db/models/fields/__init__.py | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 657ac4d47f..89520f6c86 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -494,14 +494,15 @@ class DateField(Field): def get_db_prep_save(self, value): # Casts dates into string format for entry into database. - if isinstance(value, datetime.datetime): - if settings.DATABASE_ENGINE != 'oracle': - # Oracle does not need a string conversion + if settings.DATABASE_ENGINE != 'oracle': + if isinstance(value, datetime.datetime): value = value.date().strftime('%Y-%m-%d') - elif isinstance(value, datetime.date): - if settings.DATABASE_ENGINE != 'oracle': - # Oracle does not need a string conversion + elif isinstance(value, datetime.date): value = value.strftime('%Y-%m-%d') + else: + # cx_Oracle needs a conversion to datetime.datetime instead. + if isinstance(value, datetime.date): + value = datetime.datetime.combine(value, datetime.time()) return Field.get_db_prep_save(self, value) def get_manipulator_field_objs(self): |
