diff --git a/backend/timed/reports/views.py b/backend/timed/reports/views.py index 1821b9cb3..62f32f02a 100644 --- a/backend/timed/reports/views.py +++ b/backend/timed/reports/views.py @@ -8,7 +8,7 @@ from zipfile import ZipFile from django.conf import settings -from django.db.models import F, Q, QuerySet, Sum +from django.db.models import F, Q, Exists, OuterRef, QuerySet, Sum from django.db.models.functions import ExtractMonth, ExtractYear from django.http import HttpResponse from django.utils.http import content_disposition_header @@ -117,9 +117,14 @@ def filter(self, /, **kwargs): return new_qs def filter_base(self, *args, **kwargs): + filtered = ( + self.model.objects.filter(*args, **kwargs) + .values("pk") + .filter(pk=OuterRef("pk")) + ) return StatisticQueryset( model=self.model, - base_qs=self._base.filter(*args, **kwargs), + base_qs=self._base.filter(Exists(filtered)), catch_prefixes=self._catch_prefixes, agg_filters=self._agg_filters, )