mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 04:20:12 +03:00
Remove get_remote_field compat
This commit is contained in:
parent
74c995ca16
commit
b3136427a1
|
@ -78,19 +78,6 @@ def distinct(queryset, base):
|
|||
return queryset.distinct()
|
||||
|
||||
|
||||
# TODO: Remove
|
||||
# field.rel is deprecated from 1.9 onwards
|
||||
def get_remote_field(field, **kwargs):
|
||||
if 'default' in kwargs:
|
||||
if django.VERSION < (1, 9):
|
||||
return getattr(field, 'rel', kwargs['default'])
|
||||
return getattr(field, 'remote_field', kwargs['default'])
|
||||
|
||||
if django.VERSION < (1, 9):
|
||||
return field.rel
|
||||
return field.remote_field
|
||||
|
||||
|
||||
def _resolve_model(obj):
|
||||
"""
|
||||
Resolve supplied `obj` to a Django model class.
|
||||
|
|
|
@ -32,7 +32,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||
from rest_framework import ISO_8601
|
||||
from rest_framework.compat import (
|
||||
InvalidTimeError, MaxLengthValidator, MaxValueValidator,
|
||||
MinLengthValidator, MinValueValidator, get_remote_field, unicode_repr,
|
||||
MinLengthValidator, MinValueValidator, unicode_repr,
|
||||
unicode_to_repr
|
||||
)
|
||||
from rest_framework.exceptions import ErrorDetail, ValidationError
|
||||
|
@ -1829,7 +1829,7 @@ class ModelField(Field):
|
|||
MaxLengthValidator(self.max_length, message=message))
|
||||
|
||||
def to_internal_value(self, data):
|
||||
rel = get_remote_field(self.model_field, default=None)
|
||||
rel = self.model_field.remote_field
|
||||
if rel is not None:
|
||||
return rel.model._meta.get_field(rel.field_name).to_python(data)
|
||||
return self.model_field.to_python(data)
|
||||
|
|
|
@ -7,7 +7,6 @@ Usage: `get_field_info(model)` returns a `FieldInfo` instance.
|
|||
"""
|
||||
from collections import OrderedDict, namedtuple
|
||||
|
||||
from rest_framework.compat import get_remote_field
|
||||
|
||||
FieldInfo = namedtuple('FieldResult', [
|
||||
'pk', # Model field instance
|
||||
|
@ -49,19 +48,19 @@ def get_field_info(model):
|
|||
|
||||
def _get_pk(opts):
|
||||
pk = opts.pk
|
||||
rel = get_remote_field(pk)
|
||||
rel = pk.remote_field
|
||||
|
||||
while rel and rel.parent_link:
|
||||
# If model is a child via multi-table inheritance, use parent's pk.
|
||||
pk = pk.remote_field.model._meta.pk
|
||||
rel = get_remote_field(pk)
|
||||
rel = pk.remote_field
|
||||
|
||||
return pk
|
||||
|
||||
|
||||
def _get_fields(opts):
|
||||
fields = OrderedDict()
|
||||
for field in [field for field in opts.fields if field.serialize and not get_remote_field(field)]:
|
||||
for field in [field for field in opts.fields if field.serialize and not field.remote_field]:
|
||||
fields[field.name] = field
|
||||
|
||||
return fields
|
||||
|
@ -76,7 +75,7 @@ def _get_forward_relationships(opts):
|
|||
Returns an `OrderedDict` of field names to `RelationInfo`.
|
||||
"""
|
||||
forward_relations = OrderedDict()
|
||||
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 field.remote_field]:
|
||||
forward_relations[field.name] = RelationInfo(
|
||||
model_field=field,
|
||||
related_model=field.remote_field.model,
|
||||
|
@ -95,7 +94,7 @@ def _get_forward_relationships(opts):
|
|||
# manytomany do not have to_fields
|
||||
to_field=None,
|
||||
has_through_model=(
|
||||
not get_remote_field(field).through._meta.auto_created
|
||||
not field.remote_field.through._meta.auto_created
|
||||
),
|
||||
reverse=False
|
||||
)
|
||||
|
@ -119,7 +118,7 @@ def _get_reverse_relationships(opts):
|
|||
reverse_relations[accessor_name] = RelationInfo(
|
||||
model_field=None,
|
||||
related_model=related,
|
||||
to_many=get_remote_field(relation.field).multiple,
|
||||
to_many=relation.field.remote_field.multiple,
|
||||
to_field=_get_to_field(relation.field),
|
||||
has_through_model=False,
|
||||
reverse=True
|
||||
|
@ -137,8 +136,8 @@ def _get_reverse_relationships(opts):
|
|||
# manytomany do not have to_fields
|
||||
to_field=None,
|
||||
has_through_model=(
|
||||
(getattr(get_remote_field(relation.field), 'through', None) is not None) and
|
||||
not get_remote_field(relation.field).through._meta.auto_created
|
||||
(getattr(relation.field.remote_field, 'through', None) is not None) and
|
||||
not relation.field.remote_field.through._meta.auto_created
|
||||
),
|
||||
reverse=True
|
||||
)
|
||||
|
|
|
@ -22,20 +22,6 @@ class CompatTests(TestCase):
|
|||
expected = (timedelta.days * 86400.0) + float(timedelta.seconds) + (timedelta.microseconds / 1000000.0)
|
||||
assert compat.total_seconds(timedelta) == expected
|
||||
|
||||
def test_get_remote_field_with_old_django_version(self):
|
||||
class MockField(object):
|
||||
rel = 'example_rel'
|
||||
compat.django.VERSION = (1, 8)
|
||||
assert compat.get_remote_field(MockField(), default='default_value') == 'example_rel'
|
||||
assert compat.get_remote_field(object(), default='default_value') == 'default_value'
|
||||
|
||||
def test_get_remote_field_with_new_django_version(self):
|
||||
class MockField(object):
|
||||
remote_field = 'example_remote_field'
|
||||
compat.django.VERSION = (1, 10)
|
||||
assert compat.get_remote_field(MockField(), default='default_value') == 'example_remote_field'
|
||||
assert compat.get_remote_field(object(), default='default_value') == 'default_value'
|
||||
|
||||
def test_set_rollback_for_transaction_in_managed_mode(self):
|
||||
class MockTransaction(object):
|
||||
called_rollback = False
|
||||
|
|
Loading…
Reference in New Issue
Block a user