On Sunday 27 January 2008 17:01:52 Cedric wrote:
> Hi,
> I have stories and a playlist history. I want to get some stats, ie
> the number of time that a story was played during the day, the month
> and the year.
>
> MODEL.PY
> class Story(SQLObject):
> class sqlmeta:
> idName = 'story_id'
> title = UnicodeCol(length=100)
> onair = SingleJoin('Onair', joinColumn="story_id")
> history = MultipleJoin('Onairhist', joinColumn="story_id")
>
> class Onairhist(SQLObject):
> class sqlmeta:
> idName = 'onairhist_id'
> story = ForeignKey('Story')
> created = DateTimeCol(default=datetime.now)
>
> CONTROLLERS.PY
> @expose(template="aarton.templates.stats")
> def stats(self):
> oneYearAgo = datetime.datetime.now() -
> datetime.timedelta(days=365)
> oneMonthAgo = datetime.datetime.now() -
> datetime.timedelta(days=30)
> oneDayAgo = datetime.datetime.now() -
> datetime.timedelta(days=1)
> history = []
> stories = Story.select(Story.q.status ==4)
> for story in stories:
> history.append((story,
> Onairhist.select(AND(Onairhist.q.created >= oneDayAgo, Story.q.id ==
> story.id)).count()))
> return dict(history = history)
>
> The request:
> Onairhist.select(AND(Onairhist.q.created >= oneDayAgo, Story.q.id ==
> 3)).count()
>
> Is translated by:
> SELECT onairhist.onairhist_id, onairhist.story_id, onairhist.created
> FROM story, onairhist WHERE (((onairhist.created) >= ('2008-01-26
> 16:33:03')) AND ((story.story_id) = (3)))
>
> So, it fails because the where statement is incomplete... it lacks:
> "AND ((story.story_id) = (onairhist.story_id))"
It lacks that because you don't give it, instead you do a superfluos join to
the story-table.
This should fix it:
Onairhist.select(AND(Onairhist.q.created >= oneDayAgo, Onairhist.q.storyID ==
3))
Diez
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" 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/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---