Yes, that was my plan, failing to locate something quicker and simpler. The other thread I linked to suggested there was something.
I was unable to find a suitable example in the book. On Monday, August 13, 2012 7:10:29 PM UTC-4, Alec Taylor wrote: > > Just use a dictionary to do that. > > Examples are in the book. > > On Tue, Aug 14, 2012 at 8:59 AM, Mike Girard > <mikegi...@gmail.com<javascript:>> > wrote: > > I don't think you have understood my question. > > > > My concern is not that I have too many fields nor my field names. > > > > I am asking if there is an easy way to produce a data structure that > lends > > itself to the output I want: > > > > Foreach movie in movies > > print movie.title > > foreach stars in movie.stars > > print star.name > > > > > > > > On Monday, August 13, 2012 6:47:13 PM UTC-4, Alec Taylor wrote: > >> > >> It sounds like you want to reduce the fields shown in the results, > since > >> you already know some of the information. > >> > >> However the additional queries, though smaller, will require more > >> resources than a simple join. So I recommend just sticking with the > join, > >> and displaying in your view what you'd like. > >> > >> As for the wrapper to give things easier to work with names, just > specify > >> said information in your controller. > >> > >> On 14/08/2012 8:04 AM, "Mike Girard" <mikegi...@gmail.com> wrote: > >>> > >>> I have a movie table that has a many-to-many relationship with a > person > >>> table expressed through a star table. > >>> > >>> A simplified version of my model: > >>> > >>> db.define_table('movie', > >>> > >>> Field('title','string'), > >>> > >>> db.define_table('person', > >>> > >>> Field('name', 'string', unique=True), > >>> > >>> db.define_table('star', > >>> > >>> Field('movie_id', db.movie), > >>> > >>> Field('person_id', db.person), > >>> > >>> I am able to create a select that joins the three tables and produces > a > >>> result with all the data I need. > >>> > >>> It's easy to iterate through the result and produce something akin to > >>> this: > >>> > >>> Movie Title Star 1 > >>> > >>> Movie Title Star 2 > >>> > >>> Movie Title Star 3 > >>> > >>> > >>> What I want is: > >>> > >>> Movie Title 1 > >>> > >>> Star 1, Star 2, Star 3 > >>> > >>> > >>> Movie Title 2 > >>> > >>> Star 1, Star 2, Star 3 > >>> > >>> > >>> Programmatically, I'd like something like: > >>> > >>> for each movie in rows > >>> > >>> <h2>move.title</h2> > >>> > >>> <ul> > >>> > >>> for each star in movie.stars > >>> > >>> <li>star.name</li> > >>> > >>> > >>> Before I write a function to pre-process the result, can someone tell > me > >>> if there is a helper for producing a result of this kind? > >>> > >>> This thread addresses the same issue - > >>> > >>> https://groups.google.com/forum/?fromgroups#!topic/web2py/GQsMt4qvqSs > >>> > >>> - but I was unable to discern the solution the question asker had > >>> produced for himself, the key to which was this: > >>> > >>> "web2py automatically add the many-to-many sets to an instance with > the > >>> > >>> same name of the relation table" > >>> > >>> I do not know what that means. > >>> > >>> -- > >>> > >>> > >>> > > > > -- > > > > > > > --