Update RelatedField.choices to support non-string values

This commit is contained in:
Tom Christie 2016-08-10 16:24:47 +01:00
parent e97feffc5a
commit 42914cf55e
2 changed files with 4 additions and 4 deletions

View File

@ -10,7 +10,7 @@ from django.core.urlresolvers import (
from django.db.models import Manager
from django.db.models.query import QuerySet
from django.utils import six
from django.utils.encoding import force_text, smart_text
from django.utils.encoding import smart_text
from django.utils.six.moves.urllib import parse as urlparse
from django.utils.translation import ugettext_lazy as _
@ -168,7 +168,7 @@ class RelatedField(Field):
return OrderedDict([
(
force_text(self.to_representation(item), strings_only=True),
self.to_representation(item),
self.display_value(item)
)
for item in queryset

View File

@ -614,7 +614,7 @@ class TestRelationalFieldDisplayValue(TestCase):
fields = '__all__'
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)
def test_custom_display_value(self):
@ -630,7 +630,7 @@ class TestRelationalFieldDisplayValue(TestCase):
fields = '__all__'
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)