Skip to content

Commit

Permalink
Merge pull request #3435 from stianjensen/unique-error
Browse files Browse the repository at this point in the history
Use model error_messages when available
  • Loading branch information
tomchristie committed Sep 24, 2015
2 parents c28bc98 + 62c000b commit 509c54d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
10 changes: 9 additions & 1 deletion rest_framework/utils/field_mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,15 @@ def get_field_kwargs(field_name, model_field):
]

if getattr(model_field, 'unique', False):
validator = UniqueValidator(queryset=model_field.model._default_manager)
unique_error_message = model_field.error_messages.get('unique', None)
if unique_error_message:
unique_error_message = unique_error_message % {
'model_name': model_field.model._meta.object_name,
'field_label': model_field.verbose_name
}
validator = UniqueValidator(
queryset=model_field.model._default_manager,
message=unique_error_message)
validator_kwarg.append(validator)

if validator_kwarg:
Expand Down
2 changes: 1 addition & 1 deletion tests/test_validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def test_is_not_unique(self):
data = {'username': 'existing'}
serializer = UniquenessSerializer(data=data)
assert not serializer.is_valid()
assert serializer.errors == {'username': ['This field must be unique.']}
assert serializer.errors == {'username': ['UniquenessModel with this username already exists.']}

def test_is_unique(self):
data = {'username': 'other'}
Expand Down

0 comments on commit 509c54d

Please sign in to comment.