python3: make PickledObjectField be dealt internally as binary

XXX an old-load / new-save conversion process is necessary or this
    patch will break the already-stored pickled objects
This commit is contained in:
Paul Marillonnet 2020-02-06 16:32:40 +01:00
parent 58cbf07bab
commit 7543da6dfb
1 changed files with 2 additions and 2 deletions

View File

@ -50,7 +50,7 @@ class PickledObject(six.binary_type):
try:
# make PickledObject compatible with Postgres
import psycopg2.extensions
psycopg2.extensions.register_adapter(PickledObject, psycopg2.extensions.QuotedString)
psycopg2.extensions.register_adapter(PickledObject, psycopg2.extensions.Binary)
except ImportError:
pass
@ -82,7 +82,7 @@ class PickledObjectField(models.Field):
return do_pickle(value)
def get_internal_type(self):
return 'TextField'
return 'BinaryField'
def value_to_string(self, obj):
return PickledObject(pickle.dumps(obj))