Commit f1a2eeb8 by Tom Christie Committed by GitHub

.choices property of RelatedField should preserve non-string values. (#4379)

Update RelatedField.choices to support non-string values
parent 9857cd98
...@@ -168,7 +168,7 @@ class RelatedField(Field): ...@@ -168,7 +168,7 @@ class RelatedField(Field):
return OrderedDict([ return OrderedDict([
( (
six.text_type(self.to_representation(item)), self.to_representation(item),
self.display_value(item) self.display_value(item)
) )
for item in queryset for item in queryset
......
...@@ -614,7 +614,7 @@ class TestRelationalFieldDisplayValue(TestCase): ...@@ -614,7 +614,7 @@ class TestRelationalFieldDisplayValue(TestCase):
fields = '__all__' fields = '__all__'
serializer = TestSerializer() serializer = TestSerializer()
expected = OrderedDict([('1', 'Red Color'), ('2', 'Yellow Color'), ('3', 'Green Color')]) expected = OrderedDict([(1, 'Red Color'), (2, 'Yellow Color'), (3, 'Green Color')])
self.assertEqual(serializer.fields['color'].choices, expected) self.assertEqual(serializer.fields['color'].choices, expected)
def test_custom_display_value(self): def test_custom_display_value(self):
...@@ -630,7 +630,7 @@ class TestRelationalFieldDisplayValue(TestCase): ...@@ -630,7 +630,7 @@ class TestRelationalFieldDisplayValue(TestCase):
fields = '__all__' fields = '__all__'
serializer = TestSerializer() serializer = TestSerializer()
expected = OrderedDict([('1', 'My Red Color'), ('2', 'My Yellow Color'), ('3', 'My Green Color')]) expected = OrderedDict([(1, 'My Red Color'), (2, 'My Yellow Color'), (3, 'My Green Color')])
self.assertEqual(serializer.fields['color'].choices, expected) self.assertEqual(serializer.fields['color'].choices, expected)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment