diff --git a/rest_framework/validators.py b/rest_framework/validators.py index 8006e8788..4c444cf01 100644 --- a/rest_framework/validators.py +++ b/rest_framework/validators.py @@ -188,10 +188,8 @@ class UniqueTogetherValidator: if attrs[field_name] != getattr(serializer.instance, field_name) ] - condition_kwargs = { - serializer.fields[field_name].source: attrs[serializer.fields[field_name].source] - for field_name in self.condition_fields - } + condition_sources = (serializer.fields[field_name].source for field_name in self.condition_fields) + condition_kwargs = {source: attrs[source] for source in condition_sources} if checked_values and None not in checked_values and qs_exists_with_condition(queryset, self.condition, condition_kwargs): field_names = ', '.join(self.fields) message = self.message.format(field_names=field_names)