mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 08:11:08 -05:00
Improve error handling for park and area detail views
Update ParkDetailView and ParkAreaDetailView to raise Http404 exceptions instead of ObjectDoesNotExist for improved HTTP error handling. Replit-Commit-Author: Agent Replit-Commit-Session-Id: c446bc9e-66df-438c-a86c-f53e6da13649 Replit-Commit-Checkpoint-Type: intermediate_checkpoint
This commit is contained in:
@@ -18,6 +18,7 @@ from django.http import (
|
||||
HttpResponse,
|
||||
HttpRequest,
|
||||
JsonResponse,
|
||||
Http404,
|
||||
)
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.contrib import messages
|
||||
@@ -818,9 +819,12 @@ class ParkDetailView(
|
||||
queryset = self.get_queryset()
|
||||
slug = self.kwargs.get(self.slug_url_kwarg)
|
||||
if slug is None:
|
||||
raise ObjectDoesNotExist("No slug provided")
|
||||
park, _ = Park.get_by_slug(slug)
|
||||
return park
|
||||
raise Http404("No slug provided")
|
||||
try:
|
||||
park, _ = Park.get_by_slug(slug)
|
||||
return park
|
||||
except Park.DoesNotExist:
|
||||
raise Http404("Park not found")
|
||||
|
||||
def get_queryset(self) -> QuerySet[Park]:
|
||||
return cast(
|
||||
@@ -870,11 +874,15 @@ class ParkAreaDetailView(
|
||||
park_slug = self.kwargs.get("park_slug")
|
||||
area_slug = self.kwargs.get("area_slug")
|
||||
if park_slug is None or area_slug is None:
|
||||
raise ObjectDoesNotExist("Missing slug")
|
||||
area, _ = ParkArea.get_by_slug(area_slug)
|
||||
if area.park.slug != park_slug:
|
||||
raise ObjectDoesNotExist("Park slug doesn't match")
|
||||
return area
|
||||
raise Http404("Missing slug")
|
||||
try:
|
||||
# Find the park first
|
||||
park = Park.objects.get(slug=park_slug)
|
||||
# Then find the area within that park
|
||||
area = ParkArea.objects.get(park=park, slug=area_slug)
|
||||
return area
|
||||
except (Park.DoesNotExist, ParkArea.DoesNotExist):
|
||||
raise Http404("Park or area not found")
|
||||
|
||||
def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
|
||||
context = super().get_context_data(**kwargs)
|
||||
|
||||
Reference in New Issue
Block a user