MCPcopy Create free account
hub / github.com/encode/django-rest-framework / get_unique_validators

Function get_unique_validators

rest_framework/utils/field_mapping.py:65–85  ·  view source on GitHub ↗

Returns a list of UniqueValidators that should be applied to the field.

(field_name, model_field)

Source from the content-addressed store, hash-verified

63
64
65def get_unique_validators(field_name, model_field):
66 """
67 Returns a list of UniqueValidators that should be applied to the field.
68 """
69 field_set = {field_name}
70 conditions = {
71 c.condition
72 for c in model_field.model._meta.constraints
73 if isinstance(c, models.UniqueConstraint) and set(c.fields) == field_set
74 }
75 if getattr(model_field, 'unique', False):
76 conditions.add(None)
77 if not conditions:
78 return
79 unique_error_message = get_unique_error_message(model_field)
80 queryset = model_field.model._default_manager
81 for condition in conditions:
82 yield UniqueValidator(
83 queryset=queryset if condition is None else queryset.filter(condition),
84 message=unique_error_message
85 )
86
87
88def get_field_kwargs(field_name, model_field):

Callers 1

get_field_kwargsFunction · 0.85

Calls 3

UniqueValidatorClass · 0.90
get_unique_error_messageFunction · 0.85
filterMethod · 0.45

Tested by

no test coverage detected