I have researched some (answer, answer)s but didn't get what I want.
So I have two models:
models.py
class TvProgram(TimeStampedModel):
name = models.CharField(max_length=512)
class TvProgramSchedule(TimeStampedModel):
tvprogram = models.ForeignKey(
to=TvProgram, on_delete=models.CASCADE
)
schedule = models.DateTimeField()
I want to get Tvprograms (Parent) which its children's schedules are only for the 7 days, In my case I am getting tvprograms with its all children.
Is there a way to retrieve all the Parent objects that are in the filtered querysets?
I solved the problem like that:
from django.db.models import Prefetch
yesterday = timezone.now() - timedelta(days=1)
days_range = [yesterday, yesterday + timedelta(days=8)]
queryset = qs.prefetch_related(
Prefetch('tvprogramschedule_set', queryset=TvProgramSchedule.objects.filter(schedule__range=days_range).order_by('schedule'))
).exclude(tvprogramschedule__lte=0)