Hi

My app lists sports leagues with upcoming matches for some local
friendly fixtures. Usually each league will have no more than 2 to 5
upcoming matches. Models look like this:

class League(db.Model):
  name = db.StringProperty(required=True)
  contact = db.StringProperty()

class Match(db.Model):
  name = db.StringProperty(required=True)
  league = db.ReferenceProperty(League)
  description = db.TextProperty()
  date = db.DateTimeProperty()

In my controller I append all matches to the relevant league and send
a single data structure to the template. The template then displays
each League/Match as a single wrapped unit in a dashboard view. I want
to ensure that I always display the next upcoming match first which
means I must display its corresponding league first (leagues don't and
should not have a date entry). I have tried using the sorted() method
however cannot get it to work.

As a league can contain multiple matches (and there me be some
overlap) I would be happy to compare the 1st upcoming match for each
league, even if say the second match in league one still comes before
the first match in league two.

league_list = models.League.all().fetch(1000)
match_list = models.Match.all().order('date').fetch(1000)

for match in match_list:
  for league in league_list:
    try:
      league.match
    except AttributeError:
      league.matches = []
    if league.key() == match.league.key():
      league.matches.append(match)

I thought querying by date might help in the matches, but once I
append to the ReferenceProperty league, this ordering will be lost.
Wondering what would work best?

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to