Skip to content
Snippets Groups Projects
Verified Commit edb655bc authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

fix: handle optional many-to-many in update (PATCH) requests

Closes: #185
parent 066f37ef
No related branches found
No related tags found
No related merge requests found
Pipeline #7085 passed
......@@ -548,12 +548,24 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
instance.slug = validated_data.get("slug", instance.slug)
instance.type = validated_data.get("type_id", instance.type)
instance.category.set(validated_data.get("category", []))
instance.hosts.set(validated_data.get("hosts", []))
instance.language.set(validated_data.get("language", []))
instance.music_focus.set(validated_data.get("music_focus", []))
instance.owners.set(validated_data.get("owners", []))
instance.topic.set(validated_data.get("topic", []))
# optional many-to-many in PATCH requests
if (category := validated_data.get("category")) is not None:
instance.category.set(category)
if (hosts := validated_data.get("hosts")) is not None:
instance.hosts.set(hosts)
if (language := validated_data.get("language")) is not None:
instance.language.set(language)
if (music_focus := validated_data.get("music_focus")) is not None:
instance.music_focus.set(music_focus)
if (owners := validated_data.get("owners")) is not None:
instance.owners.set(owners)
if (topic := validated_data.get("topic")) is not None:
instance.topic.set(topic)
if links_data := validated_data.get("links"):
instance = delete_links(instance)
......@@ -892,9 +904,15 @@ class NoteSerializer(serializers.ModelSerializer):
instance.tags = validated_data.get("tags", instance.tags)
instance.title = validated_data.get("title", instance.title)
instance.contributors.set(validated_data.get("contributors", []))
instance.language.set(validated_data.get("language", []))
instance.topic.set(validated_data.get("topic", []))
# optional many-to-many in PATCH requests
if (contributors := validated_data.get("contributors")) is not None:
instance.contributors.set(contributors)
if (language := validated_data.get("language")) is not None:
instance.language.set(language)
if (topic := validated_data.get("topic")) is not None:
instance.topic.set(topic)
if cba_id := validated_data.get("cba_id"):
if audio_url := get_audio_url(cba_id):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment