aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/serializer.py
diff options
context:
space:
mode:
authorTom Christie2013-02-12 22:58:38 +0000
committerTom Christie2013-02-12 22:58:38 +0000
commit724906c516b71f3ec5bc2005c66a6145c77c3739 (patch)
treefdfe6e1c573ef9540d6395a08be70a1b48b328e8 /rest_framework/tests/serializer.py
parent3f529dc25d66fba0c6f94944ebc92f338c86434d (diff)
downloaddjango-rest-framework-724906c516b71f3ec5bc2005c66a6145c77c3739.tar.bz2
Test for #637.
Diffstat (limited to 'rest_framework/tests/serializer.py')
-rw-r--r--rest_framework/tests/serializer.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index f269d1a7..5350a8f2 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -785,6 +785,23 @@ class RelatedTraversalTest(TestCase):
self.assertEqual(serializer.data, expected)
+ def test_queryset_nested_traversal(self):
+ """
+ Relational fields should be able to use methods as their source.
+ """
+ BlogPost.objects.create(title='blah')
+
+ class QuerysetMethodSerializer(serializers.Serializer):
+ blogposts = serializers.RelatedField(many=True, source='get_all_blogposts')
+
+ class ClassWithQuerysetMethod(object):
+ def get_all_blogposts(self):
+ return BlogPost.objects
+
+ obj = ClassWithQuerysetMethod()
+ serializer = QuerysetMethodSerializer(obj)
+ self.assertEquals(serializer.data, {'blogposts': [u'BlogPost object']})
+
class SerializerMethodFieldTests(TestCase):
def setUp(self):