diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index f00b685f4..3156c9fbb 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -592,13 +592,15 @@ class ModelSerializer(Serializer): # Note that we make sure to check `unique_together` both on the # base model class, but also on any parent classes. for parent_class in [model_class] + list(model_class._meta.parents.keys()): - for unique_together in parent_class._meta.unique_together: - if field_names.issuperset(set(unique_together)): - validator = UniqueTogetherValidator( - queryset=parent_class._default_manager, - fields=unique_together - ) - validators.append(validator) + http_method = getattr(self.context.get('request'), 'method', None) + if http_method and http_method != 'PATCH': + for unique_together in parent_class._meta.unique_together: + if field_names.issuperset(set(unique_together)): + validator = UniqueTogetherValidator( + queryset=parent_class._default_manager, + fields=unique_together + ) + validators.append(validator) # Add any unique_for_date/unique_for_month/unique_for_year constraints. info = model_meta.get_field_info(model_class)