[web2py] Cross reference error in DAL

29 views
Skip to first unread message

vihang

unread,
May 13, 2010, 7:09:59 AM5/13/10
to web2py-users
Hi,

Why am I getting an error here?

model.py

db=SQLDB("sqlite://db.db")

db.define_table('test',
Field('t', 'reference test2'))

db.define_table('test2',
Field('t1', 'reference test'))


Error:

Traceback (most recent call last):
File "c:\web2py\gluon\restricted.py", line 178, in restricted
exec ccode in environment
File "c:/web2py/applications/video/models/db.py", line 6, in
<module>
Field('t', 'reference test2'))
File "c:\web2py\gluon\sql.py", line 1299, in define_table
t._create_references()
File "c:\web2py\gluon\sql.py", line 1571, in _create_references
raise SyntaxError, 'Table: table "%s" does not exist' % referenced
SyntaxError: Table: table "test2" does not exist

Bummer !

mr.freeze

unread,
May 13, 2010, 12:21:07 PM5/13/10
to web2py-users
I would use an intermediate table to achieve the many to many
relationship:

db.define_table('test', Field('name') )
db.define_table('test2', Field('name') )
db.define_table('test_relation',
Field('test', 'reference test2'),
Field('test2, 'reference test'))

test_and_test2 = db((db.test.id==db.test_relation.test) &
(db.test2.id==db.test_relation.test2))
for row in test_and_test2.select():
print row.test.name, row.test2.name
Reply all
Reply to author
Forward
0 new messages