Oops. I found the solution with my self.

like below.

c.paginator = paginate.Page(
        meta.Session.query(Article).select_from(query.subquery()),
        page=int(request.params.get('page',1)),
        items_per_page=int(request.params.get('items_per_page', 10))
)

But why can't I do like below? or similar way?

query.select_from(query.subquery())


On 6月22ζ—₯, 午後6:34, Alisue <hello.goodbye.by.beat...@gmail.com> wrote:
> I have a Article table may relate with a Room table and I want to find
> Article sometime with Room.name.
> So I wrote the code like below.
>
> query = meta.Session.query(Article)
> query = query.outerjoin('rooms')
> if room_name is not None:
>     query = query.filter(Room.name == room_name)
> query = query.group_by(Article.id)
> return query
>
> A result is correct. I got all Article name without room_name and
> Articles which has rooms named as room_name.
>
> However, when I use this query with webhelpers.paginate(http://
> beta.pylonshq.com/docs/ja/0.9.7/thirdparty/webhelpers/paginate/
> #webhelpers.paginate.Page), everything goes wrong. 'paginator' doesn't
> work correct.
>
> So I chacked logs and find this output.
>  'SELECT COUNT(1) AS count_1 FROM articles LEFT OUTER JOIN rooms ON
> articles.id = rooms.article_id GROUP BY articles.id'
>
> This is might made by .count() function of sqlalchemy in somewhere in
> webhelpers.paginate code I think. However what I want to get is
> 'SELECT COUNT(1) AS count_1 FROM (SELECT * FROM articles LEFT OUTER
> JOIN rooms ON articles.id = rooms.article_id GROUP BY articles.id)'
>
> I have no idea to fix this problem. Anyone? thank you.
>
> SQLAlchemy: 0.5.4
> Pylons: 0.9.7
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to