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