diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index d3d08f2ff..ceab6111f 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -16,7 +16,7 @@ import datetime import inspect import types from decimal import Decimal -from django.contrib.contenttypes.generic import GenericForeignKey +from django.contrib.contenttypes.fields import GenericForeignKey from django.core.paginator import Page from django.db import models from django.forms import widgets @@ -114,6 +114,9 @@ class OrderedDictWithMetadata(OrderedDict): """ A sorted dict-like object, that can have additional properties attached. """ + def __reduce__(self): + return self.__class__, (OrderedDict(self), ) + def __getstate__(self): """ Used by pickle (e.g., caching). diff --git a/rest_framework/settings.py b/rest_framework/settings.py index 644751f87..c7830b665 100644 --- a/rest_framework/settings.py +++ b/rest_framework/settings.py @@ -19,9 +19,14 @@ back to the defaults. """ from __future__ import unicode_literals from django.conf import settings -from django.utils import importlib, six +from django.utils import six from rest_framework import ISO_8601 +try: + import importlib +except ImportError: + from django.utils import importlib + USER_SETTINGS = getattr(settings, 'REST_FRAMEWORK', None)