diff options
Diffstat (limited to 'django/db/backends/base/base.py')
| -rw-r--r-- | django/db/backends/base/base.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/django/db/backends/base/base.py b/django/db/backends/base/base.py index 42b4b178bf..b6800e5519 100644 --- a/django/db/backends/base/base.py +++ b/django/db/backends/base/base.py @@ -6,7 +6,10 @@ import warnings from collections import deque from contextlib import contextmanager -import pytz +try: + import zoneinfo +except ImportError: + from backports import zoneinfo from django.conf import settings from django.core.exceptions import ImproperlyConfigured @@ -23,6 +26,14 @@ from django.utils.functional import cached_property NO_DB_ALIAS = '__no_db__' +# RemovedInDjango50Warning +def timezone_constructor(tzname): + if settings.USE_DEPRECATED_PYTZ: + import pytz + return pytz.timezone(tzname) + return zoneinfo.ZoneInfo(tzname) + + class BaseDatabaseWrapper: """Represent a database connection.""" # Mapping of Field objects to their column types. @@ -135,7 +146,7 @@ class BaseDatabaseWrapper: elif self.settings_dict['TIME_ZONE'] is None: return timezone.utc else: - return pytz.timezone(self.settings_dict['TIME_ZONE']) + return timezone_constructor(self.settings_dict['TIME_ZONE']) @cached_property def timezone_name(self): |
