          return Response(status=status.HTTP_204_NO_CONTENT)
  
  
  # The AllowPUTAsCreateMixin was previously the default behaviour
  # for PUT requests. This has now been removed and must be *explicitly*
  # included if it is the behavior that you want.
 
</s> remove         instance.delete()
 </s> add         self.perform_destroy(instance) </s> remove             if relation_info.to_many and (field_name in attrs):
                many_to_many[field_name] = attrs.pop(field_name)
 </s> add             if relation_info.to_many and (field_name in validated_attrs):
                many_to_many[field_name] = validated_attrs.pop(field_name) </s> remove Note that the `.create` method should return the newly created object instance.
 </s> add Note that these methods should return the newly created object instance. </s> remove Alternatively write your view logic exlpicitly, or tie your pre/post save behavior into the model class or model manager.
 </s> add The `pre_delete` and `post_delete` hooks no longer exist, and are replaced with `.perform_destroy(self, instance)`, which should delete the instance and perform any custom actions.

    def perform_destroy(self, instance):
        # Perform a custom pre-delete action.
        send_deletion_alert(user=instance.created_by, deleted=instance)
        # Delete the object instance.
        instance.delete() </s> remove     def create(self, attrs):
 </s> add     def create(self, validated_attrs):
    def perform_destroy(self, instance):
        instance.delete()

          return Response(status=status.HTTP_204_NO_CONTENT)
  
    def perform_destroy(self, instance):
        instance.delete()

  
  # The AllowPUTAsCreateMixin was previously the default behaviour
  # for PUT requests. This has now been removed and must be *explicitly*
  # included if it is the behavior that you want.
keep add keep keep keep keep
 Tweak pre/post save hooks. Return instance in .update(). 
rest_framework/mixins.py