diff --git a/program/serializers.py b/program/serializers.py
index 63cfa45aab8ed445c79b706b5a840f5493b13bcf..86149f692ef8140b46f38edb586934ac607bfc7b 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -366,6 +366,12 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
             "updated_at",
             "updated_by",
         )
+        read_only_fields = (
+            "created_at",
+            "created_by",
+            "updated_at",
+            "updated_by",
+        )
 
     def create(self, validated_data):
         """
@@ -380,7 +386,7 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
         music_focus = validated_data.pop("music_focus")
         links_data = validated_data.pop("links", [])
 
-        show = Show.objects.create(**validated_data)
+        show = Show.objects.create(**validated_data | self.context)
 
         # Save many-to-many relationships
         show.owners.set(owners)
@@ -433,7 +439,6 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
         instance.internal_note = validated_data.get(
             "internal_note", instance.internal_note
         )
-
         instance.owners.set(validated_data.get("owners", instance.owners))
         instance.category.set(validated_data.get("category", instance.category))
         instance.hosts.set(validated_data.get("hosts", instance.hosts))
@@ -443,6 +448,8 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
             validated_data.get("music_focus", instance.music_focus)
         )
 
+        instance.updated_by = self.context.get("updated_by")
+
         if instance.links.count() > 0:
             for link in instance.links.all():
                 link.delete(keep_parents=True)