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