On Aug 11, 2010, at 8:29 AM, mdipierro wrote: > It has come up. "reference table" does not solve this problem. The > problem can be solved with the Table keyword but I think tables should > not refer to each other. Use a link table of set one of the references > to an int and use a validator to make it a reference.
If someone will test an example of this, I'll add it to the book. It's too late, I assume, to make the next print edition, but at least we'll have it on line, and it'll make the next one. > > > On Aug 11, 9:56 am, Jonathan Lundell <[email protected]> wrote: >> On Aug 11, 2010, at 2:48 AM, Oatman wrote: >> >>> Jonathan, >> >>> Thanks very much for you pointing out the reference keyword, that >>> solves the problem for self-referencing tables, but do you know of a >>> solution to my two-tables-referencing-each-other problem? I admit my >>> simplistic alias example could be solved very elegantly by a self- >>> referencing table, but I'd like to know how to do it with two tables, >>> if I wanted. >> >> I'm pretty sure that the subject has come up on this list, but I don't >> recall when. I'm hoping that someone (Massimo when he comes up for air, >> perhaps) will chime in, and then we can add it to the manual section. >> >> I'm wondering, though, whether you can't use 'reference' in your first table >> to refer to the second one. >> >> >> >>> Any thoughts? Thanks again >> >>> On Aug 10, 7:16 pm, Jonathan Lundell <[email protected]> wrote: >>>> On Aug 10, 2010, at 10:55 AM, Oatman wrote: >> >>>>> Hi all, >> >>>>> How do I create two tables that both refer to each other? Here's a >>>>> simple example: >> >>>>> db.define_table( >>>>> 'item', >>>>> Field('current_alias', 'db.item_alias') >>>>> ) >> >>>>> db.define_table( >>>>> 'item_alias', >>>>> Field('name'), >>>>> Field('item', 'db.item') >>>>> ) >> >>>>> This throws >>>>> "SyntaxError: Field: unknown field type: db.item_alias for >>>>> current_alias" >>>>> because they both need the other to be created first! >> >>>>> How can I create a simple relationship like this? Thanks in advance! >> >>>> If the answer to this question is 'reference' >>>> <http://web2py.com/book/default/chapter/06?search=define_table#Self-Re...>, >>>> perhaps we could add a line or three in the manual section to explicitly >>>> mention forward references, and not only self references.

