'datetime': datetime(2007, 1, day+1)})
context['days'] = days
- context['episodes'] = Episode.objects.prefetch_related('emission__categories').filter(
- soundfile__podcastable=True, soundfile__fragment=False) \
+ context['soundfiles'] = SoundFile.objects.prefetch_related('episode__emission__categories').filter(
+ podcastable=True, fragment=False) \
.select_related().extra(select={
'first_diffusion': 'emissions_diffusion.datetime', },
select_params=(False, True),
WHERE episode_id = emissions_episode.id)'''],
tables=['emissions_diffusion'],).order_by('-first_diffusion') [:6]
- # get all related soundfiles in a single query
- soundfiles = {}
- for soundfile in SoundFile.objects.select_related().filter(podcastable=True,
- fragment=False, episode__in=[x.id for x in context['episodes']]):
- soundfiles[soundfile.episode_id] = soundfile
-
- # replace dynamic property by a static attribute, to avoid database
- # lookups
- for episode in context['episodes']:
- episode.main_sound = soundfiles.get(episode.id)
-
context['newsletter_form'] = SubscribeForm()
return context