Fixed #19929 -- Improved error when MySQL doesn't have TZ definitions.

Thanks tomas_00 for the report.
This commit is contained in:
Aymeric Augustin 2013-02-28 17:35:13 +01:00
parent cf30469164
commit 0c82b1dfc4
2 changed files with 11 additions and 0 deletions

View File

@ -1057,6 +1057,10 @@ class SQLDateTimeCompiler(SQLCompiler):
# Datetimes are artifically returned in UTC on databases that
# don't support time zone. Restore the zone used in the query.
if settings.USE_TZ:
if datetime is None:
raise ValueError("Database returned an invalid value "
"in QuerySet.dates(). Are time zone "
"definitions installed?")
datetime = datetime.replace(tzinfo=None)
datetime = timezone.make_aware(datetime, self.query.tzinfo)
yield datetime

View File

@ -142,6 +142,13 @@ subclass::
e.g. if all the dates are in one month, it'll show the day-level
drill-down only.
.. note::
``date_hierarchy`` uses :meth:`QuerySet.datetimes()
<django.db.models.query.QuerySet.datetimes>` internally. Please refer
to its documentation for some caveats when time zone support is
enabled (:setting:`USE_TZ = True <USE_TZ>`).
.. attribute:: ModelAdmin.exclude
This attribute, if given, should be a list of field names to exclude from