From edd0079b405d7f7efc2dbb63c19601a654ce28e6 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Mon, 1 Jul 2024 20:27:47 -0400 Subject: [PATCH] fix: handle different instances better --- program/utils.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/program/utils.py b/program/utils.py index 591dbdfd..ea233909 100644 --- a/program/utils.py +++ b/program/utils.py @@ -30,6 +30,8 @@ from django.utils import timezone if typing.TYPE_CHECKING: from program.models import Host, HostLink, Note, NoteLink, Show, ShowLink +else: + from program.models import Host, HostLink, Note, NoteLink, Show, ShowLink class Link(TypedDict): @@ -149,15 +151,16 @@ def update_links( for link in instance.links.all(): link.delete(keep_parents=True) - match type(instance): - case "Host": - for link_data in links: - HostLink.objects.create(host=instance, **link_data) - case "Note": - for link_data in links: - NoteLink.objects.create(note=instance, **link_data) - case "Show": - for link_data in links: - ShowLink.objects.create(show=instance, **link_data) + if isinstance(instance, Host): + for link_data in links: + HostLink.objects.create(host=instance, **link_data) + + if isinstance(instance, Note): + for link_data in links: + NoteLink.objects.create(note=instance, **link_data) + + if isinstance(instance, Show): + for link_data in links: + ShowLink.objects.create(show=instance, **link_data) return instance -- GitLab