Hi,
the amount of googling I've fruitlessly put into this problem might
indicate that it's either a really remote corner case or something so
obvious that I'm the only one missing it.
The problem:
I've multiple many-to-many relations in my app, and I'm building a simple
management interface for few select users. It looks like smartgrid would be
perfect and astoundingly convenient solution for the problem, but it seems
to struggle with linking the objects joined via the join table. It seems to
selectively work in cases where the object to link to is directly referred
to by something else in the tree or otherwise 'known'.
I've put together simplest possible case that seems to reproduce this issue:
models/db1.py:
# simple helper to populate simple relation
def populate():
a = db.thing_a.insert(a_thing='foo')
b = db.thing_b.insert(b_thing='bar')
db.join_table.insert(a_id=a.id,
b_id=b.id)
db.define_table('thing_a', Field('a_thing'))
db.define_table('thing_b', Field('b_thing'))
db.define_table('join_table',
Field('a_id', db.thing_a),
Field('b_id', db.thing_b))
populate()
controllers/things.py:
def grid():
form = SQLFORM.smartgrid(db.thing_a)
return locals()
Now, going to http://127.0.0.1:8000/{app_name}/things/grid shows the
thing_a and there's a link to the join table, but the join table view links
only to thing_a, not thing_b. Relation to thing_b is shown fine and the
records can be inserted, edited and deleted just fine, but the lack of link
to thing_b is what breaks it for my purpose. This issue seems to be present
even in the example of "very powerful management interface" shown in the
book (applied to this same example).
I could circumvent the issue by showing only the links to direct references
and manually adding links to join table ones, but it feels a bit wrong when
there's something so ready and close already available.
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
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 [email protected].
For more options, visit https://groups.google.com/d/optout.