diff --git a/backend/secfit/workouts/serializers.py b/backend/secfit/workouts/serializers.py
index a966ed3d752dcf54767a10f2b4b53d416e095a33..5d5a3ce5ad8867dbc1a80a7d7403f309cbc43a34 100644
--- a/backend/secfit/workouts/serializers.py
+++ b/backend/secfit/workouts/serializers.py
@@ -167,8 +167,12 @@ class WorkoutSerializer(serializers.HyperlinkedModelSerializer):
         if "files" in validated_data:
             files_data = validated_data.pop("files")
             files = instance.files
+            handle_workout_files(self, files, files_data)
 
-            for file, file_data in zip(files.all(), files_data):
+        return instance
+
+    def handle_workout_files(self, files, files_data):
+         for file, file_data in zip(files.all(), files_data):
                 file.file = file_data.get("file", file.file)
 
             # If new files have been added, creating new WorkoutFiles
@@ -184,8 +188,6 @@ class WorkoutSerializer(serializers.HyperlinkedModelSerializer):
                 for i in range(len(files_data), len(files.all())):
                     files.all()[i].delete()
 
-        return instance
-
     def get_owner_username(self, obj):
         """Returns the owning user's username