Skip to content

Commit 896722b

Browse files
committed
Revert "Avoid unnecessary unique together checking (encode#9154)"
This reverts commit 41edb3b. Tests not included.
1 parent ac50cec commit 896722b

File tree

1 file changed

+4
-15
lines changed

1 file changed

+4
-15
lines changed

rest_framework/validators.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -174,22 +174,11 @@ def __call__(self, attrs, serializer):
174174
queryset = self.filter_queryset(attrs, queryset, serializer)
175175
queryset = self.exclude_current_instance(attrs, queryset, serializer.instance)
176176

177-
checked_names = [
178-
serializer.fields[field_name].source for field_name in self.fields
179-
]
180177
# Ignore validation if any field is None
181-
if serializer.instance is None:
182-
checked_values = [attrs[field_name] for field_name in checked_names]
183-
else:
184-
# Ignore validation if all field values are unchanged
185-
checked_values = [
186-
attrs[field_name]
187-
for field_name in checked_names
188-
if attrs[field_name] != getattr(serializer.instance, field_name)
189-
]
190-
191-
condition_kwargs = {source: attrs[source] for source in self.condition_fields}
192-
if checked_values and None not in checked_values and qs_exists_with_condition(queryset, self.condition, condition_kwargs):
178+
checked_values = [
179+
value for field, value in attrs.items() if field in self.fields
180+
]
181+
if None not in checked_values and qs_exists(queryset):
193182
field_names = ', '.join(self.fields)
194183
message = self.message.format(field_names=field_names)
195184
raise ValidationError(message, code='unique')

0 commit comments

Comments
 (0)