Hello All, I'm trying to make a web2py interface to a legacy db(mysql). The db is defined like this:
CREATE TABLE `car_models` ( `model_id` int(10) unsigned NOT NULL auto_increment, `model_name` text NOT NULL, PRIMARY KEY (`model_id`) ) CREATE TABLE `cars` ( `car_id` int(10) unsigned NOT NULL auto_increment, `model_id` int(10) unsigned NOT NULL, PRIMARY KEY (`car_id`) ) a model: db.define_table('car_models', Field('model_id','integer'), Field('model_name','string'), primarykey=['model_id'], migrate=False ) db.define_table('cars', Field('car_id','integer'), Field('model_id','integer'), Field('note','text'), primarykey=['car_id'], migrate=False ) works fine in appadmin. Shows tables, inserts/edits rows. But if I'm trying to define a reference db.define_table('cars', Field('car_id','integer'), Field('model_id', db.car_models.model_id), Field('note','text'), primarykey=['car_id'], migrate=False ) I get this error: Error traceback Traceback (most recent call last): File "/home/ivm/prg/web2py/gluon/restricted.py", line 186, in restricted exec ccode in environment File "/home/ivm/prg/web2py/applications/monicar_db_test/controllers/ appadmin.py", line 410, in ? File "/home/ivm/prg/web2py/gluon/globals.py", line 96, in <lambda> self._caller = lambda f: f() File "/home/ivm/prg/web2py/applications/monicar_db_test/controllers/ appadmin.py", line 124, in insert form = SQLFORM(db[table], ignore_rw=ignore_rw) File "/home/ivm/prg/web2py/gluon/sqlhtml.py", line 668, in __init__ if field.type == 'id': File "/home/ivm/prg/web2py/gluon/sql.py", line 2551, in __eq__ return Query(self, '=', value) File "/home/ivm/prg/web2py/gluon/sql.py", line 2993, in __init__ right = sql_represent(right, left.type, left._db._dbname, left._db._db_codec) File "/home/ivm/prg/web2py/gluon/sql.py", line 555, in sql_represent return str(int(obj)) ValueError: invalid literal for int(): id Looks like DAL wants me to refere to a field of type 'id' but if I change 'model_id' field type to id db.define_table('car_models', Field('model_id','id'), Field('model_name','string'), primarykey=['model_id'], migrate=False ) appadmin shows 'car_models' but doesn't let me edit rows and shows empty 'cars' table(its not empty ) web2py 1.83.2 python2.4