mirror of
https://github.com/Dispatcharr/Dispatcharr.git
synced 2026-01-23 02:35:14 +00:00
Updated Channel Serializer
Fixed serialization problems that prevented editing.
This commit is contained in:
parent
7532a6dd89
commit
1dcbf8875f
1 changed files with 18 additions and 5 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue