Add cross-Django compatibility for module paths in pickled data.
Review Request #10296 — Created Nov. 1, 2018 and submitted
Serialized signature data can reference field class paths that aren't
valid across all versions of Django. Depending on when the signatures
were created, old class paths could be used that won't work on newer
Django versions, and need to be updated.
This change introduces a special unpickler that can remap class paths
for fields, allowing these signatures to be deserialized across all
versions of Django. It's only used if needed, favoring the C-optimized
Unit tests pass on all supported versions of Django.
Tested with locally-generated signatures that exhibited the problem.