diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 42a22f749..dcf32acfb 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -115,13 +115,6 @@ def _resolve_model(obj): raise ValueError("{0} is not a Django model".format(obj)) -# TODO: Remove -def get_related_model(field): - if django.VERSION < (1, 9): - return _resolve_model(field.rel.to) - return field.remote_field.model - - # TODO: Remove def value_from_object(field, obj): if django.VERSION < (1, 9): diff --git a/rest_framework/utils/model_meta.py b/rest_framework/utils/model_meta.py index 3e3e434e6..4f47c2c36 100644 --- a/rest_framework/utils/model_meta.py +++ b/rest_framework/utils/model_meta.py @@ -7,7 +7,7 @@ Usage: `get_field_info(model)` returns a `FieldInfo` instance. """ from collections import OrderedDict, namedtuple -from rest_framework.compat import get_related_model, get_remote_field +from rest_framework.compat import get_remote_field FieldInfo = namedtuple('FieldResult', [ 'pk', # Model field instance @@ -53,7 +53,7 @@ def _get_pk(opts): while rel and rel.parent_link: # If model is a child via multi-table inheritance, use parent's pk. - pk = get_related_model(pk)._meta.pk + pk = pk.remote_field.model._meta.pk rel = get_remote_field(pk) return pk @@ -79,7 +79,7 @@ def _get_forward_relationships(opts): for field in [field for field in opts.fields if field.serialize and get_remote_field(field)]: forward_relations[field.name] = RelationInfo( model_field=field, - related_model=get_related_model(field), + related_model=field.remote_field.model, to_many=False, to_field=_get_to_field(field), has_through_model=False, @@ -90,7 +90,7 @@ def _get_forward_relationships(opts): for field in [field for field in opts.many_to_many if field.serialize]: forward_relations[field.name] = RelationInfo( model_field=field, - related_model=get_related_model(field), + related_model=field.remote_field.model, to_many=True, # manytomany do not have to_fields to_field=None,