From 531732681fbb3de5df5d4e4c24364a7c84945550 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Thu, 8 Jun 2023 14:22:54 -0400 Subject: [PATCH] fix: get the timeslot_pk from the request path if timeslot_id is missing --- program/serializers.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/program/serializers.py b/program/serializers.py index bf44de1c..c1c84962 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -787,7 +787,12 @@ class NoteSerializer(serializers.ModelSerializer): contributors = validated_data.pop("contributors", []) # required - validated_data["timeslot"] = validated_data.pop("timeslot_id") + if "timeslot_id" in validated_data: + validated_data["timeslot"] = validated_data.pop("timeslot_id") + else: + # TODO: Once we remove nested routes, this hack should be removed + timeslot_pk = TimeSlot.objects.get(pk=self.context["request"].path.split("/")[-3]) + validated_data["timeslot"] = validated_data.pop("timeslot_id", timeslot_pk) # optional validated_data["image"] = validated_data.pop("image_id", None) @@ -826,10 +831,10 @@ class NoteSerializer(serializers.ModelSerializer): instance.cba_id = validated_data.get("cba_id", instance.cba_id) instance.content = validated_data.get("content", instance.content) - instance.image = validated_data.get("image", instance.image_id) + instance.image = validated_data.get("image_id", instance.image) instance.slug = validated_data.get("slug", instance.slug) instance.summary = validated_data.get("summary", instance.summary) - instance.timeslot = validated_data.get("timeslot", instance.timeslot_id) + instance.timeslot = validated_data.get("timeslot_id", instance.timeslot) instance.title = validated_data.get("title", instance.title) instance.contributors.set(validated_data.get("contributors", instance.contributors)) -- GitLab