FYI, I did create an issue for this (#979) in google code. Best, Mike L
On Monday, November 26, 2012 3:51:52 PM UTC-5, Adi wrote: > > +1 > > this would be a great and needed feature... just stumbled into this > problem, and working around it :) > > On Friday, August 31, 2012 5:48:17 PM UTC-4, Massimo Di Pierro wrote: >> >> Hello Mike, >> >> thanks for your patch? Would you please attach it to a google code issue >> so we do not forget. We cannot add new feaures until all 2.0.x issues have >> been resolved. >> >> On Friday, August 31, 2012 2:41:30 PM UTC-5, Mike Leone wrote: >>> >>> Hello, >>> >>> We're building a web2py application that leverages SQLFORM.smartgrid >>> heavily. Out of the box, this does not support filtering on 1:M >>> relationships, or reference fields on the model. We understand the concerns >>> about this: It could potentially be a huge performance hit, especially if >>> the related table has a large number of rows. >>> >>> On the other hand, this functionality is very valuable. Being able to >>> filter on related tables is a very common need in applications. Often, >>> users need to filter on "lookup" tables that have a relatively small number >>> of rows, and the performance hit is negligible. This is a very common >>> feature in Django, and in Rails admin interfaces like ActiveScaffold and >>> RailsAdmin. >>> >>> Example: >>> >>> Given a model like this: >>> >>> db.define_table('book', >>> Field('user_id', 'reference auth_user'), >>> Field('title'), >>> Field('genre')) >>> >>> And a controller like this: >>> >>> def index(): >>> grid = SQLFORM.smartgrid(db.book) >>> return dict(grid=grid) >>> >>> The query interface will look like this by default: >>> http://i49.tinypic.com/2ugjt02.jpg >>> >>> Note how this includes title and genre, but not the auth_user reference. >>> >>> We patched web2py to allow to for 1:M reference fields in the query >>> interface. The resulting interface and generated query look something like >>> this: >>> >>> http://i46.tinypic.com/28taq74.png >>> >>> Here is our simple patch to allow searching on reference fields like >>> this: >>> >>> https://gist.github.com/ff543a5c6d3bc14b9079 >>> >>> This is obviously NOT ready for production; it's a simple proof of >>> concept. Note the potentially very expensive "ALL" query. Because of the >>> performance risks, something like this only makes sense if developers can >>> opt in, i.e. explicitly say so if they want to include a given reference >>> field in the query interface. >>> >>> 1. Would the web2py maintiners be interested in a feature like this if >>> it is opt-in? I'm willing to devote some time to submit a more robust >>> patch if I could get some guidance. >>> >>> 2. I also have a simple implementation for querying on list:reference >>> fields that I can share as well. >>> >>> Finally, I just want to thank the web2py team. I've really enjoyed using >>> the framework and hope to help out as much as I can. >>> >>> Thanks, >>> Mike Leone >>> Principal, Engineering >>> Panoptic Development, Inc. >>> >> --