Best solution is probably to rely on SQLAlchemy relationship features to fetch them. If you emit a "joined" relationship the comments for the posts loaded in current page will automatically be loaded with the blogs.
About accessing the paginated data, it is accessible inside the before_render hook, just apply a @before_render decorator before the @paginate decorator so it gets executed after pagination. On Sun, Jun 15, 2014 at 9:10 AM, Uwe Schroeder <[email protected]> wrote: > > Does anyone know whether it's possible to access a decorator's attributes > inside the decorated method? > > My problem: > > I have blogs and the blogs can have comments. The blogs are the collection > used in the pagination decorator., i.e. > > @paginate("blogs", items_per_page=3) > def blogs(self): > return dict(blogs=fetchblogsfromdatabase()) > > What I want to do is grab the blog comments only for the blogs currently > displayed on the paginated page. Aka: > > @paginate("blogs", items_per_page=3) > def blogs(self): > blogs=fetchblogsfromdatabase() > comments=dict() > for x in blogs[on_current_page]: > comments[x.id]=grab_comments_for_x.id_blog() > return dict(blogs=blogs, comments=comments) > > Obviously the decorator grabs the "blogs" collection after the controller > returns to hand the resulting subset to the templating engine. > > Is there a hook I could use to inject the comments between decorating and > rendering? > > Well, the other method would probably be an ajax call after rendering > without > the comments to grab the comments and inject them into the page. > > Any bright ideas on how to accomplish this? Ideally I'd like to access the > "paginate.items" attribute inside the controller method - but at that time > the > decorator doesn't even know anything about the items to be rendered yet... > > Thanks for any helpful hints anyone here might have. > > Uwe > > -- > You received this message because you are subscribed to the Google Groups > "TurboGears" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/turbogears. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "TurboGears" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/turbogears. For more options, visit https://groups.google.com/d/optout.

