diff --git a/program/serializers.py b/program/serializers.py
index f46a5749cf1c6524e9378f012eec04a5cd42c612..4914902969753d37311aad9507b994552d9b9044 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -260,7 +260,9 @@ class ImageSerializer(serializers.ModelSerializer):
     def create(self, validated_data):
         """Create and return a new Image instance, given the validated data."""
 
-        image = Image.objects.create(owner=self.context.get("request").user, **validated_data)
+        image = Image.objects.create(
+            owner=self.context.get("request").user.username, **validated_data
+        )
         image.save()
 
         return image
diff --git a/program/views.py b/program/views.py
index 25047f81141acca21f9ea78f057683121eb5c596..c4c3ae5b5dd42149ba0af854521ded54dd0bf929 100644
--- a/program/views.py
+++ b/program/views.py
@@ -313,7 +313,10 @@ class APIImageViewSet(viewsets.ModelViewSet):
     def create(self, request, *args, **kwargs):
         """Create an Image instance. Any user can create an image."""
 
-        serializer = ImageSerializer(data=request.data)
+        serializer = ImageSerializer(
+            context={"request": request},  # the serializer needs the request in the context
+            data=request.data,
+        )
 
         if serializer.is_valid():
             serializer.save()