joeformd wrote:
>
> thanks - but how does that query specify a town?
>
> It seems like that would just return true if the current user had any
> town relationships? Or am I reading it wrong?

oh ok -

session.scalar(exists().where(user_towns.c.user_id==current_user.id).\
where(user_towns.c.town_id==town_id))



>
>
> On Sep 19, 5:46 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
>> On Sep 19, 2009, at 11:41 AM, joeformd wrote:
>>
>>
>>
>> > When we tried that it made a sql query to get all the towns (towns are
>> > loaded lazily) - that could be an awful lot of information, so this
>> > would be a much faster query
>>
>> so, the most succinct (and efficient) query of all is
>>
>> session.scalar(exists().where(user_towns.c.user_id==current_user.id))
>>
>> should return True/False right back
>>
>>
>>
>>
>>
>> > On Sep 19, 4:33 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
>> >> On Sep 19, 2009, at 10:19 AM, joeformd wrote:
>>
>> >>> Thanks for the speedy response Michael,
>>
>> >>> we came up with this:
>>
>> >>>  current_user_has_town = bool(session.query(User).filter
>> >>> (User.id==current_user.id).filter(User.towns.contains
>> >>> (current_user)).count())
>>
>> >>> which maybe has slightly clearer intent?
>>
>> >> if you already have the current_user, why not just say "town in
>> >> current_user.towns"
> >
>


--~--~---------~--~----~------------~-------~--~----~
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