Skip to content

Commit b313642

Browse files
committed
Remove get_remote_field compat
1 parent 74c995c commit b313642

File tree

4 files changed

+10
-38
lines changed

4 files changed

+10
-38
lines changed

rest_framework/compat.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,6 @@ def distinct(queryset, base):
7878
return queryset.distinct()
7979

8080

81-
# TODO: Remove
82-
# field.rel is deprecated from 1.9 onwards
83-
def get_remote_field(field, **kwargs):
84-
if 'default' in kwargs:
85-
if django.VERSION < (1, 9):
86-
return getattr(field, 'rel', kwargs['default'])
87-
return getattr(field, 'remote_field', kwargs['default'])
88-
89-
if django.VERSION < (1, 9):
90-
return field.rel
91-
return field.remote_field
92-
93-
9481
def _resolve_model(obj):
9582
"""
9683
Resolve supplied `obj` to a Django model class.

rest_framework/fields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from rest_framework import ISO_8601
3333
from rest_framework.compat import (
3434
InvalidTimeError, MaxLengthValidator, MaxValueValidator,
35-
MinLengthValidator, MinValueValidator, get_remote_field, unicode_repr,
35+
MinLengthValidator, MinValueValidator, unicode_repr,
3636
unicode_to_repr
3737
)
3838
from rest_framework.exceptions import ErrorDetail, ValidationError
@@ -1829,7 +1829,7 @@ def __init__(self, model_field, **kwargs):
18291829
MaxLengthValidator(self.max_length, message=message))
18301830

18311831
def to_internal_value(self, data):
1832-
rel = get_remote_field(self.model_field, default=None)
1832+
rel = self.model_field.remote_field
18331833
if rel is not None:
18341834
return rel.model._meta.get_field(rel.field_name).to_python(data)
18351835
return self.model_field.to_python(data)

rest_framework/utils/model_meta.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
"""
88
from collections import OrderedDict, namedtuple
99

10-
from rest_framework.compat import get_remote_field
1110

1211
FieldInfo = namedtuple('FieldResult', [
1312
'pk', # Model field instance
@@ -49,19 +48,19 @@ def get_field_info(model):
4948

5049
def _get_pk(opts):
5150
pk = opts.pk
52-
rel = get_remote_field(pk)
51+
rel = pk.remote_field
5352

5453
while rel and rel.parent_link:
5554
# If model is a child via multi-table inheritance, use parent's pk.
5655
pk = pk.remote_field.model._meta.pk
57-
rel = get_remote_field(pk)
56+
rel = pk.remote_field
5857

5958
return pk
6059

6160

6261
def _get_fields(opts):
6362
fields = OrderedDict()
64-
for field in [field for field in opts.fields if field.serialize and not get_remote_field(field)]:
63+
for field in [field for field in opts.fields if field.serialize and not field.remote_field]:
6564
fields[field.name] = field
6665

6766
return fields
@@ -76,7 +75,7 @@ def _get_forward_relationships(opts):
7675
Returns an `OrderedDict` of field names to `RelationInfo`.
7776
"""
7877
forward_relations = OrderedDict()
79-
for field in [field for field in opts.fields if field.serialize and get_remote_field(field)]:
78+
for field in [field for field in opts.fields if field.serialize and field.remote_field]:
8079
forward_relations[field.name] = RelationInfo(
8180
model_field=field,
8281
related_model=field.remote_field.model,
@@ -95,7 +94,7 @@ def _get_forward_relationships(opts):
9594
# manytomany do not have to_fields
9695
to_field=None,
9796
has_through_model=(
98-
not get_remote_field(field).through._meta.auto_created
97+
not field.remote_field.through._meta.auto_created
9998
),
10099
reverse=False
101100
)
@@ -119,7 +118,7 @@ def _get_reverse_relationships(opts):
119118
reverse_relations[accessor_name] = RelationInfo(
120119
model_field=None,
121120
related_model=related,
122-
to_many=get_remote_field(relation.field).multiple,
121+
to_many=relation.field.remote_field.multiple,
123122
to_field=_get_to_field(relation.field),
124123
has_through_model=False,
125124
reverse=True
@@ -137,8 +136,8 @@ def _get_reverse_relationships(opts):
137136
# manytomany do not have to_fields
138137
to_field=None,
139138
has_through_model=(
140-
(getattr(get_remote_field(relation.field), 'through', None) is not None) and
141-
not get_remote_field(relation.field).through._meta.auto_created
139+
(getattr(relation.field.remote_field, 'through', None) is not None) and
140+
not relation.field.remote_field.through._meta.auto_created
142141
),
143142
reverse=True
144143
)

tests/test_compat.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,6 @@ class MockTimedelta(object):
2222
expected = (timedelta.days * 86400.0) + float(timedelta.seconds) + (timedelta.microseconds / 1000000.0)
2323
assert compat.total_seconds(timedelta) == expected
2424

25-
def test_get_remote_field_with_old_django_version(self):
26-
class MockField(object):
27-
rel = 'example_rel'
28-
compat.django.VERSION = (1, 8)
29-
assert compat.get_remote_field(MockField(), default='default_value') == 'example_rel'
30-
assert compat.get_remote_field(object(), default='default_value') == 'default_value'
31-
32-
def test_get_remote_field_with_new_django_version(self):
33-
class MockField(object):
34-
remote_field = 'example_remote_field'
35-
compat.django.VERSION = (1, 10)
36-
assert compat.get_remote_field(MockField(), default='default_value') == 'example_remote_field'
37-
assert compat.get_remote_field(object(), default='default_value') == 'default_value'
38-
3925
def test_set_rollback_for_transaction_in_managed_mode(self):
4026
class MockTransaction(object):
4127
called_rollback = False

0 commit comments

Comments
 (0)