Commit e33fed70 by Tom Christie

Merge pull request #2940 from rapilabs/master

Allow unexpected values for ChoiceField/MultipleChoiceField representations
parents 6add1acc b7edd463
......@@ -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=[
......
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