Skip to content

Commit a65f141

Browse files
committed
Remove set_many compat
1 parent e4f9943 commit a65f141

File tree

5 files changed

+12
-21
lines changed

5 files changed

+12
-21
lines changed

rest_framework/compat.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -305,15 +305,6 @@ def set_rollback():
305305
pass
306306

307307

308-
# TODO: Remove
309-
def set_many(instance, field, value):
310-
if django.VERSION < (1, 10):
311-
setattr(instance, field, value)
312-
else:
313-
field = getattr(instance, field)
314-
field.set(value)
315-
316-
317308
# TODO: Remove
318309
def include(module, namespace=None, app_name=None):
319310
from django.conf.urls import include

rest_framework/serializers.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
from django.utils.functional import cached_property
2828
from django.utils.translation import ugettext_lazy as _
2929

30-
from rest_framework.compat import postgres_fields, set_many, unicode_to_repr
30+
from rest_framework.compat import postgres_fields, unicode_to_repr
3131
from rest_framework.exceptions import ErrorDetail, ValidationError
3232
from rest_framework.fields import get_error_detail, set_value
3333
from rest_framework.settings import api_settings
@@ -932,7 +932,8 @@ def create(self, validated_data):
932932
# Save many-to-many relationships after the instance is created.
933933
if many_to_many:
934934
for field_name, value in many_to_many.items():
935-
set_many(instance, field_name, value)
935+
field = getattr(instance, field_name)
936+
field.set(value)
936937

937938
return instance
938939

@@ -946,7 +947,8 @@ def update(self, instance, validated_data):
946947
# have an instance pk for the relationships to be associated with.
947948
for attr, value in validated_data.items():
948949
if attr in info.relations and info.relations[attr].to_many:
949-
set_many(instance, attr, value)
950+
field = getattr(instance, attr)
951+
field.set(value)
950952
else:
951953
setattr(instance, attr, value)
952954
instance.save()

tests/test_model_serializer.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from django.utils import six
2222

2323
from rest_framework import serializers
24-
from rest_framework.compat import set_many, unicode_repr
24+
from rest_framework.compat import unicode_repr
2525

2626

2727
def dedent(blocktext):
@@ -703,8 +703,7 @@ def setUp(self):
703703
foreign_key=self.foreign_key_target,
704704
one_to_one=self.one_to_one_target,
705705
)
706-
set_many(self.instance, 'many_to_many', self.many_to_many_targets)
707-
self.instance.save()
706+
self.instance.many_to_many.set(self.many_to_many_targets)
708707

709708
def test_pk_retrival(self):
710709
class TestSerializer(serializers.ModelSerializer):

tests/test_permissions.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
HTTP_HEADER_ENCODING, authentication, generics, permissions, serializers,
1212
status, views
1313
)
14-
from rest_framework.compat import ResolverMatch, guardian, set_many
14+
from rest_framework.compat import ResolverMatch, guardian
1515
from rest_framework.filters import DjangoObjectPermissionsFilter
1616
from rest_framework.routers import DefaultRouter
1717
from rest_framework.test import APIRequestFactory
@@ -73,13 +73,14 @@ class ModelPermissionsIntegrationTests(TestCase):
7373
def setUp(self):
7474
User.objects.create_user('disallowed', '[email protected]', 'password')
7575
user = User.objects.create_user('permitted', '[email protected]', 'password')
76-
set_many(user, 'user_permissions', [
76+
user.user_permissions.set([
7777
Permission.objects.get(codename='add_basicmodel'),
7878
Permission.objects.get(codename='change_basicmodel'),
7979
Permission.objects.get(codename='delete_basicmodel')
8080
])
81+
8182
user = User.objects.create_user('updateonly', '[email protected]', 'password')
82-
set_many(user, 'user_permissions', [
83+
user.user_permissions.set([
8384
Permission.objects.get(codename='change_basicmodel'),
8485
])
8586

tests/test_prefetch_related.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from django.test import TestCase
33

44
from rest_framework import generics, serializers
5-
from rest_framework.compat import set_many
65
from rest_framework.test import APIRequestFactory
76

87
factory = APIRequestFactory()
@@ -23,8 +22,7 @@ class TestPrefetchRelatedUpdates(TestCase):
2322
def setUp(self):
2423
self.user = User.objects.create(username='tom', email='[email protected]')
2524
self.groups = [Group.objects.create(name='a'), Group.objects.create(name='b')]
26-
set_many(self.user, 'groups', self.groups)
27-
self.user.save()
25+
self.user.groups.set(self.groups)
2826

2927
def test_prefetch_related_updates(self):
3028
view = UserUpdate.as_view()

0 commit comments

Comments
 (0)