On Aug 22, 2:12 am, Michael Bayer <mike...@zzzcomputing.com> wrote: > On Aug 21, 2010, at 1:38 PM, Michael Bayer wrote: > > > On Aug 19, 2010, at 6:38 AM, Yap Sok Ann wrote: > > >> With declarative base, is it possible to use a relationship within a > >> column_property? > > > you mean, as I am seeing below, to use the "any()" operator produced by a > > relationship... > > >> Here's some sample code to illustrate what I want to > >> achieve: > > >> players = relation('Player', back_populates='team') > > >> # This doesn't work > >> #has_star_player = column_property(players.any(star=True)) > > >> # This works > >> has_star_player = column_property( > >> exists().where(id == Player.team_id).where(Player.star == > >> True)) > > >> # This also works > >> Team.__mapper__.add_property( > >> 'has_star_player2', > >> column_property(Team.players.any(star=True)), > >> ) > > > so that's your answer - the two approaches you have are fine. For the > > other one, you'd call players.comparator.any(), but that also doesn't work > > since the relationship is not aware of its parent mapper at that point. > > oh well, lets make this easier, declarative documents this: > > Team.has_star_player_2 = column_property(Team.players.any(star=True)) > Cool, that's definitely the best approach. Thank you.
-- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@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.