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)) > > > -- > 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. > -- 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.