diff --git a/rest_framework/tests/test_serializer.py b/rest_framework/tests/test_serializer.py index 75d6e7859..ac74baa4c 100644 --- a/rest_framework/tests/test_serializer.py +++ b/rest_framework/tests/test_serializer.py @@ -1840,3 +1840,20 @@ class BoolenFieldTypeTest(TestCase): ''' bfield = self.serializer.get_fields()['started'] self.assertEqual(type(bfield), fields.BooleanField) + + +class RelationSpanningSerializerTest(TestCase): + def test_regular_field_can_span_a_relation(self): + class TicketSerializer(serializers.ModelSerializer): + name = fields.CharField(source='assigned.name') + + class Meta: + model = Ticket + fields = ('name',) + + owner = Person(name='john') + reviewer = Person(name='reviewer') + ticket = Ticket(assigned=owner, reviewer=reviewer) + serializer = TicketSerializer(ticket, data={'name': 'doe'}) + self.assertTrue(serializer.is_valid()) + self.assertEqual(serializer.object.assigned.name, 'doe')