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)