From 5813a0951221f68591ade2039964531e754ca262 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 7 Feb 2013 09:14:58 +0000 Subject: [PATCH] Use new many=True relations style. --- rest_framework/serializers.py | 10 ++++------ rest_framework/tests/genericrelations.py | 2 +- rest_framework/tests/generics.py | 2 +- rest_framework/tests/relations.py | 2 +- rest_framework/tests/relations_hyperlink.py | 4 ++-- rest_framework/tests/relations_nested.py | 2 +- rest_framework/tests/relations_pk.py | 4 ++-- rest_framework/tests/relations_slug.py | 2 +- rest_framework/tests/serializer.py | 2 +- 9 files changed, 14 insertions(+), 16 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index b635d20d3..6d7c5345c 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -470,11 +470,10 @@ class ModelSerializer(Serializer): # .using(db).complex_filter(self.rel.limit_choices_to) kwargs = { 'required': not(model_field.null or model_field.blank), - 'queryset': model_field.rel.to._default_manager + 'queryset': model_field.rel.to._default_manager, + 'many': to_many } - if to_many: - return ManyPrimaryKeyRelatedField(**kwargs) return PrimaryKeyRelatedField(**kwargs) def get_field(self, model_field): @@ -669,8 +668,7 @@ class HyperlinkedModelSerializer(ModelSerializer): kwargs = { 'required': not(model_field.null or model_field.blank), 'queryset': rel._default_manager, - 'view_name': self._get_default_view_name(rel) + 'view_name': self._get_default_view_name(rel), + 'many': to_many } - if to_many: - return ManyHyperlinkedRelatedField(**kwargs) return HyperlinkedRelatedField(**kwargs) diff --git a/rest_framework/tests/genericrelations.py b/rest_framework/tests/genericrelations.py index 88d4efa32..029564d02 100644 --- a/rest_framework/tests/genericrelations.py +++ b/rest_framework/tests/genericrelations.py @@ -56,7 +56,7 @@ class TestGenericRelations(TestCase): """ class BookmarkSerializer(serializers.ModelSerializer): - tags = serializers.ManyRelatedField() + tags = serializers.RelatedField(many=True) class Meta: model = Bookmark diff --git a/rest_framework/tests/generics.py b/rest_framework/tests/generics.py index fd01312aa..2e7ce7279 100644 --- a/rest_framework/tests/generics.py +++ b/rest_framework/tests/generics.py @@ -330,7 +330,7 @@ class ClassA(models.Model): class ClassASerializer(serializers.ModelSerializer): - childs = serializers.ManyPrimaryKeyRelatedField(source='childs') + childs = serializers.PrimaryKeyRelatedField(many=True, source='childs') class Meta: model = ClassA diff --git a/rest_framework/tests/relations.py b/rest_framework/tests/relations.py index 5fc320380..cbf93c65e 100644 --- a/rest_framework/tests/relations.py +++ b/rest_framework/tests/relations.py @@ -40,7 +40,7 @@ class TestManyRelateMixin(TestCase): https://github.com/tomchristie/django-rest-framework/pull/632 ''' - field = serializers.ManyRelatedField(read_only=False) + field = serializers.RelatedField(many=True, read_only=False) into = {} field.field_from_native({}, None, 'field_name', into) diff --git a/rest_framework/tests/relations_hyperlink.py b/rest_framework/tests/relations_hyperlink.py index 4fbf0b639..89b2aec13 100644 --- a/rest_framework/tests/relations_hyperlink.py +++ b/rest_framework/tests/relations_hyperlink.py @@ -20,7 +20,7 @@ urlpatterns = patterns('', class ManyToManyTargetSerializer(serializers.HyperlinkedModelSerializer): - sources = serializers.ManyHyperlinkedRelatedField(view_name='manytomanysource-detail') + sources = serializers.HyperlinkedRelatedField(many=True, view_name='manytomanysource-detail') class Meta: model = ManyToManyTarget @@ -32,7 +32,7 @@ class ManyToManySourceSerializer(serializers.HyperlinkedModelSerializer): class ForeignKeyTargetSerializer(serializers.HyperlinkedModelSerializer): - sources = serializers.ManyHyperlinkedRelatedField(view_name='foreignkeysource-detail') + sources = serializers.HyperlinkedRelatedField(many=True, view_name='foreignkeysource-detail') class Meta: model = ForeignKeyTarget diff --git a/rest_framework/tests/relations_nested.py b/rest_framework/tests/relations_nested.py index e9051e71f..6f42dd5d0 100644 --- a/rest_framework/tests/relations_nested.py +++ b/rest_framework/tests/relations_nested.py @@ -16,7 +16,7 @@ class FlatForeignKeySourceSerializer(serializers.ModelSerializer): class ForeignKeyTargetSerializer(serializers.ModelSerializer): - sources = FlatForeignKeySourceSerializer() + sources = FlatForeignKeySourceSerializer(many=True) class Meta: model = ForeignKeyTarget diff --git a/rest_framework/tests/relations_pk.py b/rest_framework/tests/relations_pk.py index ffd1127ea..b8166d681 100644 --- a/rest_framework/tests/relations_pk.py +++ b/rest_framework/tests/relations_pk.py @@ -5,7 +5,7 @@ from rest_framework.tests.models import ManyToManyTarget, ManyToManySource, Fore class ManyToManyTargetSerializer(serializers.ModelSerializer): - sources = serializers.ManyPrimaryKeyRelatedField() + sources = serializers.PrimaryKeyRelatedField(many=True) class Meta: model = ManyToManyTarget @@ -17,7 +17,7 @@ class ManyToManySourceSerializer(serializers.ModelSerializer): class ForeignKeyTargetSerializer(serializers.ModelSerializer): - sources = serializers.ManyPrimaryKeyRelatedField() + sources = serializers.PrimaryKeyRelatedField(many=True) class Meta: model = ForeignKeyTarget diff --git a/rest_framework/tests/relations_slug.py b/rest_framework/tests/relations_slug.py index c5558ec5c..ef829210c 100644 --- a/rest_framework/tests/relations_slug.py +++ b/rest_framework/tests/relations_slug.py @@ -4,7 +4,7 @@ from rest_framework.tests.models import NullableForeignKeySource, ForeignKeySour class ForeignKeyTargetSerializer(serializers.ModelSerializer): - sources = serializers.ManySlugRelatedField(slug_field='name') + sources = serializers.SlugRelatedField(many=True, slug_field='name') class Meta: model = ForeignKeyTarget diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index a0e1474f5..57429e2e9 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -551,7 +551,7 @@ class ManyToManyTests(TestCase): class ReadOnlyManyToManyTests(TestCase): def setUp(self): class ReadOnlyManyToManySerializer(serializers.ModelSerializer): - rel = serializers.ManyRelatedField(read_only=True) + rel = serializers.RelatedField(many=True, read_only=True) class Meta: model = ReadOnlyManyToManyModel