mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-08 06:14:47 +03:00
Merge e2ec3800e7
into 9c952dcfe9
This commit is contained in:
commit
823ecdfef0
|
@ -111,10 +111,10 @@ class RelatedField(Field):
|
||||||
def choices(self):
|
def choices(self):
|
||||||
return OrderedDict([
|
return OrderedDict([
|
||||||
(
|
(
|
||||||
six.text_type(self.to_representation(item)),
|
self.to_representation(item),
|
||||||
six.text_type(item)
|
six.text_type(item)
|
||||||
)
|
)
|
||||||
for item in self.get_queryset()
|
for item in self.get_queryset().all()
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ from django.core.exceptions import ImproperlyConfigured
|
||||||
from django.utils.datastructures import MultiValueDict
|
from django.utils.datastructures import MultiValueDict
|
||||||
|
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
from rest_framework.compat import OrderedDict
|
||||||
from rest_framework.fields import empty
|
from rest_framework.fields import empty
|
||||||
from rest_framework.test import APISimpleTestCase
|
from rest_framework.test import APISimpleTestCase
|
||||||
|
|
||||||
|
@ -58,6 +59,13 @@ class TestPrimaryKeyRelatedField(APISimpleTestCase):
|
||||||
instance = field.to_internal_value(self.instance.pk)
|
instance = field.to_internal_value(self.instance.pk)
|
||||||
assert instance is self.instance
|
assert instance is self.instance
|
||||||
|
|
||||||
|
def test_choices(self):
|
||||||
|
self.assertEquals(
|
||||||
|
OrderedDict([(1, '<MockObject name=foo, pk=1>'),
|
||||||
|
(2, '<MockObject name=bar, pk=2>'),
|
||||||
|
(3, '<MockObject name=baz, pk=3>')]),
|
||||||
|
self.field.choices)
|
||||||
|
|
||||||
|
|
||||||
class TestProxiedPrimaryKeyRelatedField(APISimpleTestCase):
|
class TestProxiedPrimaryKeyRelatedField(APISimpleTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@ -206,3 +214,17 @@ class TestManyRelatedField(APISimpleTestCase):
|
||||||
|
|
||||||
mvd = MultiValueDict({'baz': ['bar1', 'bar2']})
|
mvd = MultiValueDict({'baz': ['bar1', 'bar2']})
|
||||||
assert empty == self.field.get_value(mvd)
|
assert empty == self.field.get_value(mvd)
|
||||||
|
|
||||||
|
def test_choices(self):
|
||||||
|
queryset = MockQueryset([
|
||||||
|
MockObject(pk=1, name='foo'),
|
||||||
|
MockObject(pk=2, name='bar'),
|
||||||
|
MockObject(pk=3, name='baz')
|
||||||
|
])
|
||||||
|
field = serializers.ManyRelatedField(
|
||||||
|
child_relation=serializers.PrimaryKeyRelatedField(queryset=queryset))
|
||||||
|
self.assertEquals(
|
||||||
|
OrderedDict([(1, '<MockObject name=foo, pk=1>'),
|
||||||
|
(2, '<MockObject name=bar, pk=2>'),
|
||||||
|
(3, '<MockObject name=baz, pk=3>')]),
|
||||||
|
field.choices)
|
||||||
|
|
|
@ -53,6 +53,9 @@ class MockQueryset(object):
|
||||||
return item
|
return item
|
||||||
raise ObjectDoesNotExist()
|
raise ObjectDoesNotExist()
|
||||||
|
|
||||||
|
def all(self):
|
||||||
|
return self.items
|
||||||
|
|
||||||
|
|
||||||
class BadType(object):
|
class BadType(object):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user