From 6e86a53c922f09785869e022a7ccf51928a55382 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Tue, 22 Sep 2015 16:14:45 +0200 Subject: [PATCH] Remove `apps.get_model` fallback * Corrects presumed logic error in `ResolveModelWithPatchedDjangoTests` --- rest_framework/compat.py | 8 -------- rest_framework/utils/model_meta.py | 5 +++-- tests/test_utils.py | 6 +++--- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/rest_framework/compat.py b/rest_framework/compat.py index e6039de5e..b85e2b965 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -82,14 +82,6 @@ except ImportError: postgres_fields = None -# Apps only exists from 1.7 onwards. -try: - from django.apps import apps - get_model = apps.get_model -except ImportError: - from django.db.models import get_model - - # django-filter is optional try: import django_filters diff --git a/rest_framework/utils/model_meta.py b/rest_framework/utils/model_meta.py index 971864769..5cb9d3a57 100644 --- a/rest_framework/utils/model_meta.py +++ b/rest_framework/utils/model_meta.py @@ -8,11 +8,12 @@ Usage: `get_field_info(model)` returns a `FieldInfo` instance. import inspect from collections import namedtuple +from django.apps import apps from django.core.exceptions import ImproperlyConfigured from django.db import models from django.utils import six -from rest_framework.compat import OrderedDict, get_model +from rest_framework.compat import OrderedDict FieldInfo = namedtuple('FieldResult', [ 'pk', # Model field instance @@ -45,7 +46,7 @@ def _resolve_model(obj): """ if isinstance(obj, six.string_types) and len(obj.split('.')) == 2: app_name, model_name = obj.split('.') - resolved_model = get_model(app_name, model_name) + resolved_model = apps.get_model(app_name, model_name) if resolved_model is None: msg = "Django did not return a model for {0}.{1}" raise ImproperlyConfigured(msg.format(app_name, model_name)) diff --git a/tests/test_utils.py b/tests/test_utils.py index 4c9fd03c8..fdc61a4aa 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -150,16 +150,16 @@ class ResolveModelWithPatchedDjangoTests(TestCase): def setUp(self): """Monkeypatch get_model.""" - self.get_model = rest_framework.utils.model_meta.get_model + self.get_model = rest_framework.utils.model_meta.apps.get_model def get_model(app_label, model_name): return None - rest_framework.utils.model_meta.get_model = get_model + rest_framework.utils.model_meta.apps.get_model = get_model def tearDown(self): """Revert monkeypatching.""" - rest_framework.utils.model_meta.models.get_model = self.get_model + rest_framework.utils.model_meta.apps.get_model = self.get_model def test_blows_up_if_model_does_not_resolve(self): with self.assertRaises(ImproperlyConfigured):