fixed get_context_data() would never pull event from an Hanchan Model.

This commit is contained in:
2020-09-22 19:35:09 +02:00
parent 3f403b3f52
commit 2885ef9d5c

View File

@@ -37,14 +37,14 @@ class EventDetailMixin(object):
:return: TemplateContext object""" :return: TemplateContext object"""
context = super(EventDetailMixin, self).get_context_data(**kwargs) context = super(EventDetailMixin, self).get_context_data(**kwargs)
if hasattr(self, 'event'): if getattr(self, 'event'):
context['event'] = self.event context['event'] = self.event
elif hasattr(self, 'object') and isinstance(self.object, models.Event): elif isinstance(getattr(self, 'object'), models.Event):
context['event'] = self.object context['event'] = self.object
elif hasattr(self, 'object') and hasattr(self.object, 'event'): elif getattr(getattr(self, 'object'), 'event'):
context['event'] = self.object.event context['event'] = self.object.event
else: else:
print("No Event in Context!") raise ImproperlyConfigured("No Event in Context!")
return context return context
def get_queryset(self): def get_queryset(self):
@@ -55,11 +55,21 @@ class EventDetailMixin(object):
""" """
if self.model == models.Event: if self.model == models.Event:
self.event = get_object_or_404(models.Event, pk=self.kwargs['pk']) self.event = get_object_or_404(models.Event, pk=self.kwargs['pk'])
queryset = self.model.objects.all() queryset = self.model._default_manager.all()
else: elif self.kwargs.get('event'):
self.event = get_object_or_404(models.Event, self.event = get_object_or_404(
pk=self.kwargs['event']) models.Event,
pk=self.kwargs['event'])
queryset = self.model.objects.filter(event=self.event) queryset = self.model.objects.filter(event=self.event)
elif self.model:
queryset = self.model._default_manager.all()
else:
raise ImproperlyConfigured(
"%(cls)s is missing a QuerySet. Define "
"%(cls)s.model, %(cls)s.queryset, or override "
"%(cls)s.get_queryset()." % {
'cls': self.__class__.__name__
})
return queryset.prefetch_related() return queryset.prefetch_related()