diff options
| author | Tom Christie | 2013-02-12 22:58:38 +0000 |
|---|---|---|
| committer | Tom Christie | 2013-02-12 22:58:38 +0000 |
| commit | 724906c516b71f3ec5bc2005c66a6145c77c3739 (patch) | |
| tree | fdfe6e1c573ef9540d6395a08be70a1b48b328e8 /rest_framework/tests/serializer.py | |
| parent | 3f529dc25d66fba0c6f94944ebc92f338c86434d (diff) | |
| download | django-rest-framework-724906c516b71f3ec5bc2005c66a6145c77c3739.tar.bz2 | |
Test for #637.
Diffstat (limited to 'rest_framework/tests/serializer.py')
| -rw-r--r-- | rest_framework/tests/serializer.py | 17 |
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): |
