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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy