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.

Reply via email to