diff options
| author | jem-odoo <jem@openerp.com> | 2018-09-05 13:37:22 +0200 |
|---|---|---|
| committer | jem-odoo <jem@openerp.com> | 2018-09-05 15:05:33 +0200 |
| commit | a6401391ed305f4382bc66f895dfd8e1860bef08 (patch) | |
| tree | 82d6457794a70a65b30e98777f217e4b9d03c864 /odoo/fields.py | |
| parent | a997a5a1c6e3f319b481019925d1e777ea6d30ef (diff) | |
[FIX] fields: raise when setting aware datetime
Now that Date/Datetime fields use python naive datetime, we want
to prevent developper to call or assign aware datetime to
fields. Moreover, if so, the timezone will be stored in the
database, but when reading Datetime fields, we expect naive datetime.
Comparing naive and aware datetime objects leads to errors.
This commit forces developpers to use naive datetime when saving
data in database.
As example, we have to erase the timezone of dates in calendar
modules. We also regroup the 2 assignations in one call to
`write` for performance reason.
Thanks to @dbeguin and @RomainLibert for spending some time
on this bug.
Diffstat (limited to 'odoo/fields.py')
| -rw-r--r-- | odoo/fields.py | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/odoo/fields.py b/odoo/fields.py index 16a58d70653..650eaebb799 100644 --- a/odoo/fields.py +++ b/odoo/fields.py @@ -1681,6 +1681,8 @@ class Datetime(Field): return None if isinstance(value, date): if isinstance(value, datetime): + if value.tzinfo: + raise ValueError("Datetime field expects a naive datetime: %s" % value) return value return datetime.combine(value, time.min) try: |
