Add cross-Django compatibility for module paths in pickled data.

Review Request #10296 — Created Nov. 1, 2018 and submitted — Latest diff uploaded

Information

Django Evolution
master
13a228a...

Reviewers

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
unpickler instead.

Unit tests pass on all supported versions of Django.

Tested with locally-generated signatures that exhibited the problem.