* Throw 404 instead of a 503 in Event Mixins if the related event does
not exist. * Changes in the KyuDanRanking View to be more stable if we get bogus kwargs.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"""Mixins for Events."""
|
||||
from django.http import Http404
|
||||
|
||||
from django.shortcuts import get_object_or_404
|
||||
from . import models
|
||||
|
||||
|
||||
@@ -34,12 +34,14 @@ class EventDetailMixin(object):
|
||||
|
||||
:return: TemplateContext object"""
|
||||
context = super(EventDetailMixin, self).get_context_data(**kwargs)
|
||||
if hasattr(self, 'event') and self.event:
|
||||
if hasattr(self, 'event'):
|
||||
context['event'] = self.event
|
||||
elif hasattr(self, 'object') and isinstance(self.object, models.Event):
|
||||
context['event'] = self.object
|
||||
elif hasattr(self, 'object') and hasattr(self.object, 'event'):
|
||||
context['event'] = self.object.event
|
||||
else:
|
||||
print("No Event in Context!")
|
||||
return context
|
||||
|
||||
def get_queryset(self):
|
||||
@@ -49,12 +51,9 @@ class EventDetailMixin(object):
|
||||
:return: a django QuerySets
|
||||
"""
|
||||
if self.model == models.Event:
|
||||
self.event = models.Event.objects.get(pk=self.kwargs['pk'])
|
||||
self.event = get_object_or_404(models.Event, pk=self.kwargs['pk'])
|
||||
queryset = self.model.objects.all()
|
||||
else:
|
||||
try:
|
||||
self.event = models.Event.objects.get(pk=self.kwargs['event'])
|
||||
queryset = self.model.objects.filter(event=self.event)
|
||||
except models.Event.DoesNotExist:
|
||||
raise Http404(_('Event does not exist'))
|
||||
self.event = get_object_or_404(models.Event, pk=self.kwargs['event'])
|
||||
queryset = self.model.objects.filter(event=self.event)
|
||||
return queryset.prefetch_related()
|
||||
|
||||
Reference in New Issue
Block a user