I'm probably doing something wrong in my template now, but that
version is only returning one event per region, and the order is
backwards. I tried .order_by('-start_date'), but it didn't appear to
make any difference.
On Jul 26, 3:12 pm, Tim Chase <[EMAIL PROTECTED]> wrote:
> > few minor questions:
> > missing )
> > [(region, future_events.filter(club__region=region) for region in regions]
>
> > guessing the missing ) goes here:
> > [(region, future_events.filter(club__region=region)) for region in regions]
>
> Yup...must have been my poor transcription from brain to email.
> Sorry for the confusion. It's building a list of tuples where
> the first item is the region and the second is the list of events
> in that region.
>
> > What happens if there are no events in one of the regions?
>
> > Does that cause a hit to the DB for each region?
>
> In its current state, yes, it does cause a DB hit for each
> region, data or no data. Yes, Baxter, filter() is lazy, but it's
> instantiated in the view when called upon, so it is actually
> evaluated even when blank.
>
> To avoid this, an alternative might be something like
>
> future_events = Event.object.filter(
> start_date__gte=now).select_related(
> ).order_by('start_date')
>
> events = {} # or SortedDict if order matters
> for event in future_events: # one DB hit here
> region = event.club.region
> ev_list = events.get(region, [])
> ev_list.append(event)
> events[region] = ev_list
> return render_to_response(..., {
> 'events': events, # this might need to
> # be events.iteritems() or something
> # like that
> ...})
>
> This version should only hit the DB once for all the event data
> and also sort the data before it ever gets to you, so you
> (Baxter) can avoid the dictsort in your template.
>
> -tim
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---