Remove set_many compat

This commit is contained in:
Carlton Gibson 2017-10-05 17:24:11 +02:00
parent e4f99430af
commit a65f1418b7
5 changed files with 12 additions and 21 deletions

View File

@ -305,15 +305,6 @@ def set_rollback():
pass pass
# TODO: Remove
def set_many(instance, field, value):
if django.VERSION < (1, 10):
setattr(instance, field, value)
else:
field = getattr(instance, field)
field.set(value)
# TODO: Remove # TODO: Remove
def include(module, namespace=None, app_name=None): def include(module, namespace=None, app_name=None):
from django.conf.urls import include from django.conf.urls import include

View File

@ -27,7 +27,7 @@ from django.utils import six, timezone
from django.utils.functional import cached_property from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from rest_framework.compat import postgres_fields, set_many, unicode_to_repr from rest_framework.compat import postgres_fields, unicode_to_repr
from rest_framework.exceptions import ErrorDetail, ValidationError from rest_framework.exceptions import ErrorDetail, ValidationError
from rest_framework.fields import get_error_detail, set_value from rest_framework.fields import get_error_detail, set_value
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
@ -932,7 +932,8 @@ class ModelSerializer(Serializer):
# Save many-to-many relationships after the instance is created. # Save many-to-many relationships after the instance is created.
if many_to_many: if many_to_many:
for field_name, value in many_to_many.items(): for field_name, value in many_to_many.items():
set_many(instance, field_name, value) field = getattr(instance, field_name)
field.set(value)
return instance return instance
@ -946,7 +947,8 @@ class ModelSerializer(Serializer):
# have an instance pk for the relationships to be associated with. # have an instance pk for the relationships to be associated with.
for attr, value in validated_data.items(): for attr, value in validated_data.items():
if attr in info.relations and info.relations[attr].to_many: if attr in info.relations and info.relations[attr].to_many:
set_many(instance, attr, value) field = getattr(instance, attr)
field.set(value)
else: else:
setattr(instance, attr, value) setattr(instance, attr, value)
instance.save() instance.save()

View File

@ -21,7 +21,7 @@ from django.test import TestCase
from django.utils import six from django.utils import six
from rest_framework import serializers from rest_framework import serializers
from rest_framework.compat import set_many, unicode_repr from rest_framework.compat import unicode_repr
def dedent(blocktext): def dedent(blocktext):
@ -703,8 +703,7 @@ class TestIntegration(TestCase):
foreign_key=self.foreign_key_target, foreign_key=self.foreign_key_target,
one_to_one=self.one_to_one_target, one_to_one=self.one_to_one_target,
) )
set_many(self.instance, 'many_to_many', self.many_to_many_targets) self.instance.many_to_many.set(self.many_to_many_targets)
self.instance.save()
def test_pk_retrival(self): def test_pk_retrival(self):
class TestSerializer(serializers.ModelSerializer): class TestSerializer(serializers.ModelSerializer):

View File

@ -11,7 +11,7 @@ from rest_framework import (
HTTP_HEADER_ENCODING, authentication, generics, permissions, serializers, HTTP_HEADER_ENCODING, authentication, generics, permissions, serializers,
status, views status, views
) )
from rest_framework.compat import ResolverMatch, guardian, set_many from rest_framework.compat import ResolverMatch, guardian
from rest_framework.filters import DjangoObjectPermissionsFilter from rest_framework.filters import DjangoObjectPermissionsFilter
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
from rest_framework.test import APIRequestFactory from rest_framework.test import APIRequestFactory
@ -73,13 +73,14 @@ class ModelPermissionsIntegrationTests(TestCase):
def setUp(self): def setUp(self):
User.objects.create_user('disallowed', 'disallowed@example.com', 'password') User.objects.create_user('disallowed', 'disallowed@example.com', 'password')
user = User.objects.create_user('permitted', 'permitted@example.com', 'password') user = User.objects.create_user('permitted', 'permitted@example.com', 'password')
set_many(user, 'user_permissions', [ user.user_permissions.set([
Permission.objects.get(codename='add_basicmodel'), Permission.objects.get(codename='add_basicmodel'),
Permission.objects.get(codename='change_basicmodel'), Permission.objects.get(codename='change_basicmodel'),
Permission.objects.get(codename='delete_basicmodel') Permission.objects.get(codename='delete_basicmodel')
]) ])
user = User.objects.create_user('updateonly', 'updateonly@example.com', 'password') user = User.objects.create_user('updateonly', 'updateonly@example.com', 'password')
set_many(user, 'user_permissions', [ user.user_permissions.set([
Permission.objects.get(codename='change_basicmodel'), Permission.objects.get(codename='change_basicmodel'),
]) ])

View File

@ -2,7 +2,6 @@ from django.contrib.auth.models import Group, User
from django.test import TestCase from django.test import TestCase
from rest_framework import generics, serializers from rest_framework import generics, serializers
from rest_framework.compat import set_many
from rest_framework.test import APIRequestFactory from rest_framework.test import APIRequestFactory
factory = APIRequestFactory() factory = APIRequestFactory()
@ -23,8 +22,7 @@ class TestPrefetchRelatedUpdates(TestCase):
def setUp(self): def setUp(self):
self.user = User.objects.create(username='tom', email='tom@example.com') self.user = User.objects.create(username='tom', email='tom@example.com')
self.groups = [Group.objects.create(name='a'), Group.objects.create(name='b')] self.groups = [Group.objects.create(name='a'), Group.objects.create(name='b')]
set_many(self.user, 'groups', self.groups) self.user.groups.set(self.groups)
self.user.save()
def test_prefetch_related_updates(self): def test_prefetch_related_updates(self):
view = UserUpdate.as_view() view = UserUpdate.as_view()