I am using trunk (2.0.3). Your original code is correct.

I cannot reproduce the issue. I tried:

$ python web2py.py -S welcome -M -N
>>> link = db.define_table('link', 
    Field('linkId', 'id', readable=False),
    Field('name', length=50, required=True, unique=True),
    Field('parentLinkId', 'reference link', required=True,
          label='Parent Link'),
    Field('controller', length=512, required=True),
    Field('method', length=512, required=True),
    Field('picture', length=512, required=False),
    Field('permissionId', db.auth_permission, label='Rqd Permission'),
    Field('groupId', db.auth_group, label='Rqd Group'),
    Field('description', 'text', required=True),
    format='%(name)s')
>>> link
<Table link 
(linkId,name,parentLinkId,controller,method,picture,permissionId,groupId,description)>

Could you please perform the same check?

On Friday, 31 August 2012 08:29:32 UTC-5, Jim S wrote:
>
> No, I made no changes to my code what-so-ever.
>
> -Jim
>
> On Fri, Aug 31, 2012 at 8:20 AM, Bruno Rocha <[email protected]<javascript:>
> > wrote:
>
>> did you turned lazy_tables to True on your db definition?
>>
>> Bruno Rocha
>> http://rochacbruno.com.br
>> mobile
>>  Em 31/08/2012 10:02, "Jim S" <[email protected] <javascript:>> escreveu:
>>
>> Getting the following:
>>>
>>> Traceback (most recent call last):
>>>
>>>
>>>   File "C:\dev\web2py\gluon\restricted.py", line 209, in restricted
>>>
>>>
>>>     exec ccode in environment
>>>   File "C:/dev/web2py/applications/infocenter/models/db.py" 
>>> <http://127.0.0.1:8000/admin/default/edit/infocenter/models/db.py>, line 
>>> 152, in <module>
>>>
>>>
>>>     format='%(name)s')
>>>   File "C:\dev\web2py\gluon\dal.py", line 7047, in define_table
>>>
>>>
>>>     table = self.lazy_define_table(tablename,*fields,**args)
>>>
>>>
>>>   File "C:\dev\web2py\gluon\dal.py", line 7078, in lazy_define_table
>>>
>>>
>>>     polymodel=polymodel)
>>>   File "C:\dev\web2py\gluon\dal.py", line 920, in create_table
>>>
>>>
>>>     fake_migrate=fake_migrate)
>>>   File "C:\dev\web2py\gluon\dal.py", line 988, in migrate_table
>>>
>>>
>>>     and not isinstance(table[key].type, SQLCustomType) \
>>>
>>>
>>>   File "C:\dev\web2py\gluon\dal.py", line 7559, in __getitem__
>>>
>>>
>>>     return ogetattr(self, str(key))
>>>
>>> AttributeError: 'Table' object has no attribute 'permissionid'
>>>
>>> Relevant define_table in db.py:
>>>
>>> link = db.define_table('link', 
>>>     Field('linkId', 'id', readable=False),
>>>     Field('name', length=50, required=True, unique=True),
>>>     Field('parentLinkId', 'reference link', required=True,
>>>           label='Parent Link'),
>>>     Field('controller', length=512, required=True),
>>>     Field('method', length=512, required=True),
>>>     Field('picture', length=512, required=False),
>>>     Field('permissionId', db.auth_permission, label='Rqd Permission'),
>>>     Field('groupId', db.auth_group, label='Rqd Group'),
>>>     Field('description', 'text', required=True),
>>>     format='%(name)s')
>>>
>>>
>>> This is line 152.  If I change it to the following (added .id to 
>>> definition of permissionId field reference) :
>>>
>>> link = db.define_table('link', 
>>>  Field('linkId', 'id', readable=False),
>>>  Field('name', length=50, required=True, unique=True),
>>>  Field('parentLinkId', 'reference link', required=True,
>>>  label='Parent Link'),
>>>  Field('controller', length=512, required=True),
>>>  Field('method', length=512, required=True),
>>>  Field('picture', length=512, required=False),
>>>  Field('permissionId', db.auth_permission.id, label='Rqd Permission'),  
>>>  Field('groupId', db.auth_group, label='Rqd Group'),
>>>  Field('description', 'text', required=True),
>>>  format='%(name)s')
>>>
>>> Then I get the following traceback:
>>>
>>> Traceback (most recent call last):
>>>
>>>
>>>   File "C:\dev\web2py\gluon\restricted.py", line 209, in restricted
>>>
>>>
>>>     exec ccode in environment
>>>   File "C:/dev/web2py/applications/infocenter/models/db.py" 
>>> <http://127.0.0.1:8000/admin/default/edit/infocenter/models/db.py>, line 
>>> 152, in <module>
>>>
>>>
>>>     format='%(name)s')
>>>   File "C:\dev\web2py\gluon\dal.py", line 7047, in define_table
>>>
>>>
>>>     table = self.lazy_define_table(tablename,*fields,**args)
>>>
>>>
>>>   File "C:\dev\web2py\gluon\dal.py", line 7078, in lazy_define_table
>>>
>>>
>>>     polymodel=polymodel)
>>>   File "C:\dev\web2py\gluon\dal.py", line 721, in create_table
>>>
>>>
>>>     elif field_type.startswith('reference'):
>>>
>>>
>>>   File "C:\dev\web2py\gluon\dal.py", line 8122, in startswith
>>>
>>>
>>>     raise SyntaxError, "startswith used with incompatible field type"
>>> SyntaxError: startswith used with incompatible field type
>>>
>>> Any ideas where to look for this one?
>>>
>>> -Jim
>>>
>>> -- 
>>>  
>>>  
>>>  
>>>
>> -- 
>>  
>>  
>>  
>>
>
>

-- 



Reply via email to