summaryrefslogtreecommitdiff
path: root/django/db/backends/sqlite3
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2022-07-21 07:03:32 +0200
committerGitHub <noreply@github.com>2022-07-21 07:03:32 +0200
commit0e76abb8c445647359a7c5c636a8df5e4cf7bdf9 (patch)
tree4cae49ea0c29b02d06f21f5237a3e252b61e0dee /django/db/backends/sqlite3
parenteae973df6671568a79f3e55b0c971078236100d4 (diff)
Stopped using default adapters/converters on SQLite backend.
Default adapters/converters were deprecated in Python 3.12, see https://github.com/python/cpython/issues/90016.
Diffstat (limited to 'django/db/backends/sqlite3')
-rw-r--r--django/db/backends/sqlite3/base.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index 8ca076a1d9..f495ff39a1 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -1,6 +1,7 @@
"""
SQLite backend for the sqlite3 module in the standard library.
"""
+import datetime
import decimal
import warnings
from itertools import chain
@@ -10,7 +11,7 @@ from django.core.exceptions import ImproperlyConfigured
from django.db import IntegrityError
from django.db.backends.base.base import BaseDatabaseWrapper
from django.utils.asyncio import async_unsafe
-from django.utils.dateparse import parse_datetime, parse_time
+from django.utils.dateparse import parse_date, parse_datetime, parse_time
from django.utils.regex_helper import _lazy_re_compile
from ._functions import register as register_functions
@@ -29,12 +30,23 @@ def decoder(conv_func):
return lambda s: conv_func(s.decode())
+def adapt_date(val):
+ return val.isoformat()
+
+
+def adapt_datetime(val):
+ return val.isoformat(" ")
+
+
Database.register_converter("bool", b"1".__eq__)
+Database.register_converter("date", decoder(parse_date))
Database.register_converter("time", decoder(parse_time))
Database.register_converter("datetime", decoder(parse_datetime))
Database.register_converter("timestamp", decoder(parse_datetime))
Database.register_adapter(decimal.Decimal, str)
+Database.register_adapter(datetime.date, adapt_date)
+Database.register_adapter(datetime.datetime, adapt_datetime)
class DatabaseWrapper(BaseDatabaseWrapper):