summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoulder Sprinters <boulder-sprinters@djangoproject.com>2007-04-13 17:50:19 +0000
committerBoulder Sprinters <boulder-sprinters@djangoproject.com>2007-04-13 17:50:19 +0000
commit48c0460605d64576a66c601e59ae5bca8853447f (patch)
tree23630c48aa92d800b192eba2e8af856cfbedd594
parent8051e715b94186cdf16d356bfe82b506af4e74eb (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__.py13
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):