aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/serializer.py
diff options
context:
space:
mode:
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):