Commit 5813a095 by Tom Christie

Use new many=True relations style.

parent c18fb0d6
...@@ -470,11 +470,10 @@ class ModelSerializer(Serializer): ...@@ -470,11 +470,10 @@ class ModelSerializer(Serializer):
# .using(db).complex_filter(self.rel.limit_choices_to) # .using(db).complex_filter(self.rel.limit_choices_to)
kwargs = { kwargs = {
'required': not(model_field.null or model_field.blank), '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) return PrimaryKeyRelatedField(**kwargs)
def get_field(self, model_field): def get_field(self, model_field):
...@@ -669,8 +668,7 @@ class HyperlinkedModelSerializer(ModelSerializer): ...@@ -669,8 +668,7 @@ class HyperlinkedModelSerializer(ModelSerializer):
kwargs = { kwargs = {
'required': not(model_field.null or model_field.blank), 'required': not(model_field.null or model_field.blank),
'queryset': rel._default_manager, '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) return HyperlinkedRelatedField(**kwargs)
...@@ -56,7 +56,7 @@ class TestGenericRelations(TestCase): ...@@ -56,7 +56,7 @@ class TestGenericRelations(TestCase):
""" """
class BookmarkSerializer(serializers.ModelSerializer): class BookmarkSerializer(serializers.ModelSerializer):
tags = serializers.ManyRelatedField() tags = serializers.RelatedField(many=True)
class Meta: class Meta:
model = Bookmark model = Bookmark
......
...@@ -330,7 +330,7 @@ class ClassA(models.Model): ...@@ -330,7 +330,7 @@ class ClassA(models.Model):
class ClassASerializer(serializers.ModelSerializer): class ClassASerializer(serializers.ModelSerializer):
childs = serializers.ManyPrimaryKeyRelatedField(source='childs') childs = serializers.PrimaryKeyRelatedField(many=True, source='childs')
class Meta: class Meta:
model = ClassA model = ClassA
......
...@@ -40,7 +40,7 @@ class TestManyRelateMixin(TestCase): ...@@ -40,7 +40,7 @@ class TestManyRelateMixin(TestCase):
https://github.com/tomchristie/django-rest-framework/pull/632 https://github.com/tomchristie/django-rest-framework/pull/632
''' '''
field = serializers.ManyRelatedField(read_only=False) field = serializers.RelatedField(many=True, read_only=False)
into = {} into = {}
field.field_from_native({}, None, 'field_name', into) field.field_from_native({}, None, 'field_name', into)
......
...@@ -20,7 +20,7 @@ urlpatterns = patterns('', ...@@ -20,7 +20,7 @@ urlpatterns = patterns('',
class ManyToManyTargetSerializer(serializers.HyperlinkedModelSerializer): class ManyToManyTargetSerializer(serializers.HyperlinkedModelSerializer):
sources = serializers.ManyHyperlinkedRelatedField(view_name='manytomanysource-detail') sources = serializers.HyperlinkedRelatedField(many=True, view_name='manytomanysource-detail')
class Meta: class Meta:
model = ManyToManyTarget model = ManyToManyTarget
...@@ -32,7 +32,7 @@ class ManyToManySourceSerializer(serializers.HyperlinkedModelSerializer): ...@@ -32,7 +32,7 @@ class ManyToManySourceSerializer(serializers.HyperlinkedModelSerializer):
class ForeignKeyTargetSerializer(serializers.HyperlinkedModelSerializer): class ForeignKeyTargetSerializer(serializers.HyperlinkedModelSerializer):
sources = serializers.ManyHyperlinkedRelatedField(view_name='foreignkeysource-detail') sources = serializers.HyperlinkedRelatedField(many=True, view_name='foreignkeysource-detail')
class Meta: class Meta:
model = ForeignKeyTarget model = ForeignKeyTarget
......
...@@ -16,7 +16,7 @@ class FlatForeignKeySourceSerializer(serializers.ModelSerializer): ...@@ -16,7 +16,7 @@ class FlatForeignKeySourceSerializer(serializers.ModelSerializer):
class ForeignKeyTargetSerializer(serializers.ModelSerializer): class ForeignKeyTargetSerializer(serializers.ModelSerializer):
sources = FlatForeignKeySourceSerializer() sources = FlatForeignKeySourceSerializer(many=True)
class Meta: class Meta:
model = ForeignKeyTarget model = ForeignKeyTarget
......
...@@ -5,7 +5,7 @@ from rest_framework.tests.models import ManyToManyTarget, ManyToManySource, Fore ...@@ -5,7 +5,7 @@ from rest_framework.tests.models import ManyToManyTarget, ManyToManySource, Fore
class ManyToManyTargetSerializer(serializers.ModelSerializer): class ManyToManyTargetSerializer(serializers.ModelSerializer):
sources = serializers.ManyPrimaryKeyRelatedField() sources = serializers.PrimaryKeyRelatedField(many=True)
class Meta: class Meta:
model = ManyToManyTarget model = ManyToManyTarget
...@@ -17,7 +17,7 @@ class ManyToManySourceSerializer(serializers.ModelSerializer): ...@@ -17,7 +17,7 @@ class ManyToManySourceSerializer(serializers.ModelSerializer):
class ForeignKeyTargetSerializer(serializers.ModelSerializer): class ForeignKeyTargetSerializer(serializers.ModelSerializer):
sources = serializers.ManyPrimaryKeyRelatedField() sources = serializers.PrimaryKeyRelatedField(many=True)
class Meta: class Meta:
model = ForeignKeyTarget model = ForeignKeyTarget
......
...@@ -4,7 +4,7 @@ from rest_framework.tests.models import NullableForeignKeySource, ForeignKeySour ...@@ -4,7 +4,7 @@ from rest_framework.tests.models import NullableForeignKeySource, ForeignKeySour
class ForeignKeyTargetSerializer(serializers.ModelSerializer): class ForeignKeyTargetSerializer(serializers.ModelSerializer):
sources = serializers.ManySlugRelatedField(slug_field='name') sources = serializers.SlugRelatedField(many=True, slug_field='name')
class Meta: class Meta:
model = ForeignKeyTarget model = ForeignKeyTarget
......
...@@ -551,7 +551,7 @@ class ManyToManyTests(TestCase): ...@@ -551,7 +551,7 @@ class ManyToManyTests(TestCase):
class ReadOnlyManyToManyTests(TestCase): class ReadOnlyManyToManyTests(TestCase):
def setUp(self): def setUp(self):
class ReadOnlyManyToManySerializer(serializers.ModelSerializer): class ReadOnlyManyToManySerializer(serializers.ModelSerializer):
rel = serializers.ManyRelatedField(read_only=True) rel = serializers.RelatedField(many=True, read_only=True)
class Meta: class Meta:
model = ReadOnlyManyToManyModel model = ReadOnlyManyToManyModel
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment