diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 83ee0c8df..891b250f4 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -982,6 +982,9 @@ class ModelSerializer(Serializer): instance.save() + # Note that many-to-many fields are set after updating instance. + # Setting m2m fields triggers signals which could potentialy change + # updated instance and we do not want it to collide with .update() for attr, value in m2m_fields: field = getattr(instance, attr) field.set(value)