diff --git a/program/utils.py b/program/utils.py index 591dbdfd1aa1207e433ccb880274e1d7864e6ed8..ea2339091928af7c569746df3422306b07b4b59c 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