Fixed #32595 -- Fixed SchemaEditor.quote_value() crash with bytes.
This commit is contained in:
parent
3c75f1f3ca
commit
f6018c1e63
|
@ -230,7 +230,14 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
|||
|
||||
@async_unsafe
|
||||
def get_new_connection(self, conn_params):
|
||||
return Database.connect(**conn_params)
|
||||
connection = Database.connect(**conn_params)
|
||||
# bytes encoder in mysqlclient doesn't work and was added only to
|
||||
# prevent KeyErrors in Django < 2.0. We can remove this workaround when
|
||||
# mysqlclient 2.1 becomes the minimal mysqlclient supported by Django.
|
||||
# See https://github.com/PyMySQL/mysqlclient/issues/489
|
||||
if connection.encoders.get(bytes) is bytes:
|
||||
connection.encoders.pop(bytes)
|
||||
return connection
|
||||
|
||||
def init_connection_state(self):
|
||||
assignments = []
|
||||
|
|
|
@ -12,6 +12,7 @@ class SchemaEditorTests(TestCase):
|
|||
tested_values = [
|
||||
('string', "'string'"),
|
||||
('¿Tú hablas inglés?', "'¿Tú hablas inglés?'"),
|
||||
(b'bytes', b"'bytes'"),
|
||||
(42, '42'),
|
||||
(1.754, '1.754e0' if MySQLdb.version_info >= (1, 3, 14) else '1.754'),
|
||||
(False, b'0' if MySQLdb.version_info >= (1, 4, 0) else '0'),
|
||||
|
|
Loading…
Reference in New Issue