https://github.com/django/django/blob/master/django/db/backends/oracle/base.pyで、このコードの断片を見つけることができます:
if int(Database.version.split('.', 1)[0]) >= 5 and \
(int(Database.version.split('.', 2)[1]) >= 1 or
not hasattr(Database, 'UNICODE')):
convert_unicode = force_text
else:
convert_unicode = force_bytes
convert_unicode
グローバル変数です。
私のアプリケーションでは、それを別のものに変更する必要があります(理由を聞かないでください。必要なことを信頼してください)。これを行う簡単な方法は何ですか?
1 つのオプションは、Oracle バックエンドから継承し、次のような関数を上書きする独自のバックエンドを定義することです。
def savepoint_create_sql(self, sid):
return convert_unicode("SAVEPOINT " + self.quote_name(sid))
これに:
def savepoint_create_sql(self, sid):
return MY_convert_unicode("SAVEPOINT " + self.quote_name(sid))
しかし、私が気付いていないもっと簡単な解決策があると思います...