mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 12:30:11 +03:00
Extract modern code from get_related_model() from compat.py and remove
This commit is contained in:
parent
bb2efdb74b
commit
e2aa256d76
|
@ -115,13 +115,6 @@ def _resolve_model(obj):
|
||||||
raise ValueError("{0} is not a Django model".format(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
|
# TODO: Remove
|
||||||
def value_from_object(field, obj):
|
def value_from_object(field, obj):
|
||||||
if django.VERSION < (1, 9):
|
if django.VERSION < (1, 9):
|
||||||
|
|
|
@ -7,7 +7,7 @@ Usage: `get_field_info(model)` returns a `FieldInfo` instance.
|
||||||
"""
|
"""
|
||||||
from collections import OrderedDict, namedtuple
|
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', [
|
FieldInfo = namedtuple('FieldResult', [
|
||||||
'pk', # Model field instance
|
'pk', # Model field instance
|
||||||
|
@ -53,7 +53,7 @@ def _get_pk(opts):
|
||||||
|
|
||||||
while rel and rel.parent_link:
|
while rel and rel.parent_link:
|
||||||
# If model is a child via multi-table inheritance, use parent's pk.
|
# 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)
|
rel = get_remote_field(pk)
|
||||||
|
|
||||||
return 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)]:
|
for field in [field for field in opts.fields if field.serialize and get_remote_field(field)]:
|
||||||
forward_relations[field.name] = RelationInfo(
|
forward_relations[field.name] = RelationInfo(
|
||||||
model_field=field,
|
model_field=field,
|
||||||
related_model=get_related_model(field),
|
related_model=field.remote_field.model,
|
||||||
to_many=False,
|
to_many=False,
|
||||||
to_field=_get_to_field(field),
|
to_field=_get_to_field(field),
|
||||||
has_through_model=False,
|
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]:
|
for field in [field for field in opts.many_to_many if field.serialize]:
|
||||||
forward_relations[field.name] = RelationInfo(
|
forward_relations[field.name] = RelationInfo(
|
||||||
model_field=field,
|
model_field=field,
|
||||||
related_model=get_related_model(field),
|
related_model=field.remote_field.model,
|
||||||
to_many=True,
|
to_many=True,
|
||||||
# manytomany do not have to_fields
|
# manytomany do not have to_fields
|
||||||
to_field=None,
|
to_field=None,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user