diff --git a/program/serializers.py b/program/serializers.py index c4006ef51c500edc563a0dd8cb78ae3450882577..9a8cded7756ae79bc0fd238bdfe0d66a26a8a015 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -717,6 +717,13 @@ class ScheduleDryRunResponseSerializer(serializers.Serializer): class TimeSlotSerializer(serializers.ModelSerializer): + language_ids = serializers.PrimaryKeyRelatedField( + allow_null=True, + many=True, + queryset=Language.objects.all(), + required=False, + source="language", + ) note_id = serializers.SerializerMethodField() show_id = serializers.SerializerMethodField() schedule_id = serializers.PrimaryKeyRelatedField( @@ -727,6 +734,9 @@ class TimeSlotSerializer(serializers.ModelSerializer): queryset=TimeSlot.objects.all(), required=False, ) + topic_ids = serializers.PrimaryKeyRelatedField( + allow_null=True, many=True, queryset=Topic.objects.all(), required=False, source="topic" + ) class Meta: model = TimeSlot @@ -739,9 +749,11 @@ class TimeSlotSerializer(serializers.ModelSerializer): "start", ) fields = ( + "language_ids", "memo", "playlist_id", "repetition_of_id", + "topic_ids", ) + read_only_fields @staticmethod @@ -759,6 +771,10 @@ class TimeSlotSerializer(serializers.ModelSerializer): instance.memo = validated_data.get("memo", instance.memo) instance.repetition_of = validated_data.get("repetition_of_id", instance.repetition_of) instance.playlist_id = validated_data.get("playlist_id", instance.playlist_id) + + instance.language.set(validated_data.get("language", [])) + instance.topic.set(validated_data.get("topic", [])) + instance.save() return instance