diff --git a/rest_framework/utils/field_mapping.py b/rest_framework/utils/field_mapping.py index dbd145371..ab42fc605 100644 --- a/rest_framework/utils/field_mapping.py +++ b/rest_framework/utils/field_mapping.py @@ -127,13 +127,13 @@ def get_field_kwargs(field_name, model_field): else: # Ensure that max_value is passed explicitly as a keyword arg, # rather than as a validator. - max_value, messsage = next(( + max_value, message = next(( (validator.limit_value, validator.message) for validator in validator_kwarg if isinstance(validator, validators.MaxValueValidator) ), (None, None)) if max_value is not None and isinstance(model_field, NUMERIC_FIELD_TYPES): kwargs['max_value'] = max_value - kwargs['error_messages'] = {'max_value': messsage} + kwargs['error_messages'] = {'max_value': message} validator_kwarg = [ validator for validator in validator_kwarg if not isinstance(validator, validators.MaxValueValidator) @@ -141,13 +141,13 @@ def get_field_kwargs(field_name, model_field): # Ensure that min_value is passed explicitly as a keyword arg, # rather than as a validator. - min_value, messsage = next(( + min_value, message = next(( (validator.limit_value, validator.message) for validator in validator_kwarg if isinstance(validator, validators.MinValueValidator) ), (None, None)) if min_value is not None and isinstance(model_field, NUMERIC_FIELD_TYPES): kwargs['min_value'] = min_value - kwargs['error_messages'] = {**kwargs['error_messages'], **{'min_value': messsage}} + kwargs.setdefault('error_messages', {}).update(min_value=message) validator_kwarg = [ validator for validator in validator_kwarg if not isinstance(validator, validators.MinValueValidator) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index af4f63ca2..814901331 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -214,6 +214,9 @@ class TestRegularFieldMappings(TestCase): expected = expected.replace( "('red', 'Red'), ('blue', 'Blue'), ('green', 'Green')", "(u'red', u'Red'), (u'blue', u'Blue'), (u'green', u'Green')" + ).replace( + "{'max_value': 'Ensure this value is less than or equal to %(limit_value)s.', 'min_value': 'Ensure this value is greater than or equal to %(limit_value)s.'}", + {'max_value': u'Ensure this value is less than or equal to %(limit_value)s.', 'min_value': u'Ensure this value is greater than or equal to %(limit_value)s.'} ) self.assertEqual(unicode_repr(TestSerializer()), expected)