Skip to content

Commit 509c54d

Browse files
committed
Merge pull request #3435 from stianjensen/unique-error
Use model error_messages when available
2 parents c28bc98 + 62c000b commit 509c54d

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

rest_framework/utils/field_mapping.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,15 @@ def get_field_kwargs(field_name, model_field):
193193
]
194194

195195
if getattr(model_field, 'unique', False):
196-
validator = UniqueValidator(queryset=model_field.model._default_manager)
196+
unique_error_message = model_field.error_messages.get('unique', None)
197+
if unique_error_message:
198+
unique_error_message = unique_error_message % {
199+
'model_name': model_field.model._meta.object_name,
200+
'field_label': model_field.verbose_name
201+
}
202+
validator = UniqueValidator(
203+
queryset=model_field.model._default_manager,
204+
message=unique_error_message)
197205
validator_kwarg.append(validator)
198206

199207
if validator_kwarg:

tests/test_validators.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def test_is_not_unique(self):
4848
data = {'username': 'existing'}
4949
serializer = UniquenessSerializer(data=data)
5050
assert not serializer.is_valid()
51-
assert serializer.errors == {'username': ['This field must be unique.']}
51+
assert serializer.errors == {'username': ['UniquenessModel with this username already exists.']}
5252

5353
def test_is_unique(self):
5454
data = {'username': 'other'}

0 commit comments

Comments
 (0)