Django

Code

Changeset 5006

Show
Ignore:
Timestamp:
04/13/07 12:50:19 (2 years ago)
Author:
bouldersprinters
Message:

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.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/boulder-oracle-sprint/django/db/models/fields/__init__.py

    r4990 r5006  
    495495    def get_db_prep_save(self, value): 
    496496        # Casts dates into string format for entry into database. 
    497         if isinstance(value, datetime.datetime): 
    498             if settings.DATABASE_ENGINE != 'oracle': 
    499                 # Oracle does not need a string conversion 
     497        if settings.DATABASE_ENGINE != 'oracle': 
     498            if isinstance(value, datetime.datetime): 
    500499                value = value.date().strftime('%Y-%m-%d') 
    501         elif isinstance(value, datetime.date): 
    502             if settings.DATABASE_ENGINE != 'oracle': 
    503                 # Oracle does not need a string conversion 
     500            elif isinstance(value, datetime.date): 
    504501                value = value.strftime('%Y-%m-%d') 
     502        else: 
     503            # cx_Oracle needs a conversion to datetime.datetime instead. 
     504            if isinstance(value, datetime.date): 
     505                value = datetime.datetime.combine(value, datetime.time()) 
    505506        return Field.get_db_prep_save(self, value) 
    506507