NDOJ/django_2_2_pymysql_patch.py

18 lines
733 B
Python
Raw Permalink Normal View History

2020-01-21 06:35:58 +00:00
import django
from django.utils.encoding import force_text
if (2, 2) <= django.VERSION < (3,):
# Django 2.2.x is incompatible with PyMySQL.
# This monkey patch backports the Django 3.0+ code.
from django.db.backends.mysql.operations import DatabaseOperations
def last_executed_query(self, cursor, sql, params):
# With MySQLdb, cursor objects have an (undocumented) "_executed"
# attribute where the exact query sent to the database is saved.
# See MySQLdb/cursors.py in the source distribution.
# MySQLdb returns string, PyMySQL bytes.
2022-05-14 17:57:27 +00:00
return force_text(getattr(cursor, "_executed", None), errors="replace")
2020-01-21 06:35:58 +00:00
DatabaseOperations.last_executed_query = last_executed_query