Note, I'm not sure the fact that a Set is callable is documented in the 
book.

On Tuesday, May 21, 2013 4:14:48 PM UTC-4, Anthony wrote:
>
> db(some_query) creates a DAL Set object (on which you can then call 
> methods such as .select(), .update(), etc.). A Set object is also callable, 
> and if you call it by passing in another query, it will simply add the new 
> query as an AND condition. So, that code is just equivalent to:
>
> db(
>     (db.products.id == db.product_filter.product_id) &
>     (db.filters.id == db.product_filter.filter_id) &
>     (db.filters.name == "hoodie")
> )
>
> or
>
> db(db.products.id == db.product_filter.product_id)(db.filters.id == db.
> product_filter.filter_id)\
>   (db.filters.name == "hoodie")
>
> The idea is that you can create a base Set object and then use it to 
> create more specific sets by adding different conditions.
>
> Anthony
>
> On Tuesday, May 21, 2013 4:02:00 PM UTC-4, brac...@gmail.com wrote:
>>
>> Is there a section in the online web2py book that explains Niphlod's way 
>> to building a query?
>>
>> Near the bottom of this 
>> thread<https://groups.google.com/forum/?fromgroups=#!topic/web2py/qL1DKqeEFkA>
>>  there 
>> is:
>>
>> all_in_one = db(
>>         (db.products.id == db.product_filter.product_id) &
>>         (db.filters.id == db.product_filter.filter_id) 
>> )
>>
>> Then to get all corresponding rows in product_filter table,
>>
>> all_in_one_hoodies = all_in_one(db.filters.name == "hoodie").select()
>>
>> I understand his cumbersome example, where you have to select a resultset 
>> and then pass that to another select(). But I don't understand how I can 
>> pass all_in_one() a parameter and how it knows to return all products which 
>> have the "hoodie" filter name.
>>
>>
>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to