aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests
diff options
context:
space:
mode:
authorTom Christie2014-01-02 01:44:49 -0800
committerTom Christie2014-01-02 01:44:49 -0800
commit2921455ea729a6dffe969918b46fd735920d17aa (patch)
tree81491958834c6f3178394765eb6e283637b3489b /rest_framework/tests
parent1f3f2741f519967aa236cd861a79c2c459063197 (diff)
parentd30ce2575c6b3901f15eb96eeaf66cc65e1d298b (diff)
downloaddjango-rest-framework-2921455ea729a6dffe969918b46fd735920d17aa.tar.bz2
Merge pull request #1318 from sheppard/generic-dj16
saving nested generic relation serializers broken in django 1.6
Diffstat (limited to 'rest_framework/tests')
-rw-r--r--rest_framework/tests/test_genericrelations.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/rest_framework/tests/test_genericrelations.py b/rest_framework/tests/test_genericrelations.py
index c38bfb9f..2d341344 100644
--- a/rest_framework/tests/test_genericrelations.py
+++ b/rest_framework/tests/test_genericrelations.py
@@ -69,6 +69,35 @@ class TestGenericRelations(TestCase):
}
self.assertEqual(serializer.data, expected)
+ def test_generic_nested_relation(self):
+ """
+ Test saving a GenericRelation field via a nested serializer.
+ """
+
+ class TagSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Tag
+ exclude = ('content_type', 'object_id')
+
+ class BookmarkSerializer(serializers.ModelSerializer):
+ tags = TagSerializer()
+
+ class Meta:
+ model = Bookmark
+ exclude = ('id',)
+
+ data = {
+ 'url': 'https://docs.djangoproject.com/',
+ 'tags': [
+ {'tag': 'contenttypes'},
+ {'tag': 'genericrelations'},
+ ]
+ }
+ serializer = BookmarkSerializer(data=data)
+ self.assertTrue(serializer.is_valid())
+ serializer.save()
+ self.assertEqual(serializer.object.tags.count(), 2)
+
def test_generic_fk(self):
"""
Test a relationship that spans a GenericForeignKey field.