mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-22 17:47:04 +03:00
Merge pull request #2940 from rapilabs/master
Allow unexpected values for ChoiceField/MultipleChoiceField representations
This commit is contained in:
commit
e33fed70d6
|
@ -1045,7 +1045,7 @@ class ChoiceField(Field):
|
|||
def to_representation(self, value):
|
||||
if value in ('', None):
|
||||
return value
|
||||
return self.choice_strings_to_values[six.text_type(value)]
|
||||
return self.choice_strings_to_values.get(six.text_type(value), value)
|
||||
|
||||
|
||||
class MultipleChoiceField(ChoiceField):
|
||||
|
@ -1073,7 +1073,7 @@ class MultipleChoiceField(ChoiceField):
|
|||
|
||||
def to_representation(self, value):
|
||||
return set([
|
||||
self.choice_strings_to_values[six.text_type(item)] for item in value
|
||||
self.choice_strings_to_values.get(six.text_type(item), item) for item in value
|
||||
])
|
||||
|
||||
|
||||
|
|
|
@ -920,7 +920,8 @@ class TestChoiceField(FieldValues):
|
|||
}
|
||||
outputs = {
|
||||
'good': 'good',
|
||||
'': ''
|
||||
'': '',
|
||||
'amazing': 'amazing',
|
||||
}
|
||||
field = serializers.ChoiceField(
|
||||
choices=[
|
||||
|
@ -1005,7 +1006,7 @@ class TestMultipleChoiceField(FieldValues):
|
|||
('aircon', 'incorrect'): ['"incorrect" is not a valid choice.']
|
||||
}
|
||||
outputs = [
|
||||
(['aircon', 'manual'], set(['aircon', 'manual']))
|
||||
(['aircon', 'manual', 'incorrect'], set(['aircon', 'manual', 'incorrect']))
|
||||
]
|
||||
field = serializers.MultipleChoiceField(
|
||||
choices=[
|
||||
|
|
Loading…
Reference in New Issue
Block a user