From 1dcbf8875f97dbc33595740c1efa2d2796dd098e Mon Sep 17 00:00:00 2001 From: Dispatcharr Date: Thu, 6 Mar 2025 19:39:21 -0600 Subject: [PATCH] Updated Channel Serializer Fixed serialization problems that prevented editing. --- apps/channels/serializers.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/apps/channels/serializers.py b/apps/channels/serializers.py index a0dcb6a6..c4af1ebb 100644 --- a/apps/channels/serializers.py +++ b/apps/channels/serializers.py @@ -44,6 +44,7 @@ class StreamSerializer(serializers.ModelSerializer): return fields + # # Channel Group # @@ -74,7 +75,8 @@ class ChannelSerializer(serializers.ModelSerializer): ) streams = serializers.ListField( - child=serializers.IntegerField(), write_only=True + child=serializers.IntegerField(), + write_only=True ) stream_ids = serializers.SerializerMethodField() @@ -111,17 +113,28 @@ class ChannelSerializer(serializers.ModelSerializer): def update(self, instance, validated_data): print("Validated Data:", validated_data) - stream_ids = validated_data.get('streams', None) + stream_ids = validated_data.pop('streams', None) print(f'stream ids: {stream_ids}') - # Update basic fields - instance.name = validated_data.get('channel_name', instance.channel_name) + # Update the actual Channel fields + instance.channel_number = validated_data.get('channel_number', instance.channel_number) + instance.channel_name = validated_data.get('channel_name', instance.channel_name) + instance.logo_url = validated_data.get('logo_url', instance.logo_url) + instance.tvg_id = validated_data.get('tvg_id', instance.tvg_id) + instance.tvg_name = validated_data.get('tvg_name', instance.tvg_name) + + # If serializer allows changing channel_group or stream_profile: + if 'channel_group' in validated_data: + instance.channel_group = validated_data['channel_group'] + if 'stream_profile' in validated_data: + instance.stream_profile = validated_data['stream_profile'] + instance.save() + # Handle the many-to-many 'streams' if stream_ids is not None: # Clear existing relationships instance.channelstream_set.all().delete() - # Add new streams in order for index, stream_id in enumerate(stream_ids): ChannelStream.objects.create(channel=instance, stream_id=stream_id, order=index)