OK. we are getting closer... I think I can fix this tonight.
On Sep 10, 12:59 pm, Dave <thefe...@gmail.com> wrote: > Line 128 of gql.py gives a syntax error: > > fields=[args['polymodel']]+[field fof field in fields] > > I took a guess that this was supposed to give a list of fields from > both the base table and the table being created in, and replaced it > with this instead: > > fields = map(lambda x: args['polymodel'][x], args['polymodel'].fields) > +list(fields) > > This change allowed the table to be constructed with fields from both > itself and its base class. Unfortunately, this gives an error when > _create is called on the table (line 137), due to duplicate properties > from the base table. Here's the trace: > > Traceback (most recent call last): > File "C:\Users\Dave\Documents\Python\web2py\gluon\restricted.py", > line 188, in restricted > exec ccode in environment > File "C:\Users\Dave\Documents\Python\web2py\applications\welcome/ > models/db.py", line 80, in <module> > db.define_table('person',Field('first_name'), > polymodel=db.contact) > File "C:\Users\Dave\Documents\Python\web2py\gluon\contrib\gql.py", > line 137, in define_table > t._create(polymodel=args.get('polymodel',None)) > File "C:\Users\Dave\Documents\Python\web2py\gluon\contrib\gql.py", > line 250, in _create > self._tableobj = classobj(self._tablename, > (polymodel._tableobj, ), myfields) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \ext\db\polymodel.py", line 125, in __init__ > super(PolymorphicClass, cls).__init__(name, bases, dct, > map_kind=False) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \ext\db\__init__.py", line 418, in __init__ > _initialize_properties(cls, name, bases, dct) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \ext\db\__init__.py", line 336, in _initialize_properties > raise DuplicatePropertyError('Duplicate property: %s' % attr_name) > DuplicatePropertyError: Duplicate property: address