Commit 6e86a53c by Carlton Gibson

Remove `apps.get_model` fallback

* Corrects presumed logic error in `ResolveModelWithPatchedDjangoTests`
parent 68c88e18
...@@ -82,14 +82,6 @@ except ImportError: ...@@ -82,14 +82,6 @@ except ImportError:
postgres_fields = None 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 # django-filter is optional
try: try:
import django_filters import django_filters
......
...@@ -8,11 +8,12 @@ Usage: `get_field_info(model)` returns a `FieldInfo` instance. ...@@ -8,11 +8,12 @@ Usage: `get_field_info(model)` returns a `FieldInfo` instance.
import inspect import inspect
from collections import namedtuple from collections import namedtuple
from django.apps import apps
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.db import models from django.db import models
from django.utils import six from django.utils import six
from rest_framework.compat import OrderedDict, get_model from rest_framework.compat import OrderedDict
FieldInfo = namedtuple('FieldResult', [ FieldInfo = namedtuple('FieldResult', [
'pk', # Model field instance 'pk', # Model field instance
...@@ -45,7 +46,7 @@ def _resolve_model(obj): ...@@ -45,7 +46,7 @@ def _resolve_model(obj):
""" """
if isinstance(obj, six.string_types) and len(obj.split('.')) == 2: if isinstance(obj, six.string_types) and len(obj.split('.')) == 2:
app_name, model_name = obj.split('.') 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: if resolved_model is None:
msg = "Django did not return a model for {0}.{1}" msg = "Django did not return a model for {0}.{1}"
raise ImproperlyConfigured(msg.format(app_name, model_name)) raise ImproperlyConfigured(msg.format(app_name, model_name))
......
...@@ -150,16 +150,16 @@ class ResolveModelWithPatchedDjangoTests(TestCase): ...@@ -150,16 +150,16 @@ class ResolveModelWithPatchedDjangoTests(TestCase):
def setUp(self): def setUp(self):
"""Monkeypatch get_model.""" """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): def get_model(app_label, model_name):
return None return None
rest_framework.utils.model_meta.get_model = get_model rest_framework.utils.model_meta.apps.get_model = get_model
def tearDown(self): def tearDown(self):
"""Revert monkeypatching.""" """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): def test_blows_up_if_model_does_not_resolve(self):
with self.assertRaises(ImproperlyConfigured): with self.assertRaises(ImproperlyConfigured):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment