From 8fa33406f177cb3f167af34318fc1aa696158edc Mon Sep 17 00:00:00 2001
From: Lucas Brandstaetter <lucas@brandstaetter.tech>
Date: Wed, 16 Aug 2023 12:50:04 +0200
Subject: [PATCH] Fix event detail lookup

Event lookups should lead to 404 when the event was not found.
Ref: https://www.django-rest-framework.org/api-guide/generic-views/#genericapiview

Fixes 366
---
 src/api/views/events.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/api/views/events.py b/src/api/views/events.py
index 41cd544e6..74a2d7f12 100644
--- a/src/api/views/events.py
+++ b/src/api/views/events.py
@@ -1,6 +1,6 @@
-from rest_framework import generics
-
 from core.models.events import Event
+from django.shortcuts import get_object_or_404
+from rest_framework import generics
 
 from ..serializers import EventSerializer
 from .mixins import ConferenceSlugMixin
@@ -10,12 +10,14 @@ class EventList(ConferenceSlugMixin, generics.ListAPIView):
     serializer_class = EventSerializer
 
     def get_queryset(self, **kwargs):
-        return Event.objects.filter(conference=self.conference).order_by('name')
+        return Event.objects.filter(conference=self.conference).order_by("name")
 
 
 class EventDetail(ConferenceSlugMixin, generics.RetrieveAPIView):
     serializer_class = EventSerializer
 
     def get_object(self, **kwargs):
-        event_id = self.request.resolver_match.kwargs['pk']
-        return Event.objects.conference_accessible(conference=self.conference).get(pk=event_id)
+        event_id = self.request.resolver_match.kwargs["pk"]
+        return get_object_or_404(
+            Event.objects.conference_accessible(conference=self.conference), pk=event_id
+        )
-- 
GitLab