You are missing a comma:

Field('ReportInstanceIndicatorInstance', 'reference 
ReportInstanceIndicatorInstance')

Python concatenates adjacent string literals delimited by whitespace, so 
without the comma, Python interprets:

'ReportInstanceIndicatorInstance' 'reference 
ReportInstanceIndicatorInstance'

as:

'ReportInstanceIndicatorInstancereference ReportInstanceIndicatorInstance'

So, it appears you are trying to include a space in the field name rather 
than specify the field as a reference field.

Anthony

On Thursday, March 17, 2016 at 10:58:43 AM UTC-4, Heather Dawe wrote:
>
> The two tables I am defining are as follows
>
> db.define_table('Series',
>    Field('name'),
>    Field('SeriesBy', 'reference DataItem'),
>    format='%(name)s')
>
> db.define_table('SeriesReportInstanceIndicatorInstance',
>    Field('Series', 'reference Series'),
>    Field('ReportInstanceIndicatorInstance' 'reference 
> ReportInstanceIndicatorInstance'),
>    Field('this_series_name'))
>
> The Series table gets defined fine. The error I get is the following
>
> <type 'exceptions.SyntaxError'> Field: invalid field name: 
> ReportInstanceIndicatorInstancereference ReportInstanceIndicatorInstance, 
> use rname for "funny" names
>
> when I attempt to reference the already established 
> ReportInstanceIndicatorInstance table below
>
> db.define_table('ReportInstanceIndicatorInstance',
>    Field('ReportInstance', 'reference ReportInstance'),
>    Field('IndicatorInstance', 'reference IndicatorInstance'), 
>    Field('GroupBy', 'reference DataItem'),
>    Field('GroupBy2', 'reference DataItem'),
>    Field('title'),
>    Field('x_axis_label'),
>    Field('y_axis_label'),
>    Field('report_data_id'),
>    format= '%(title)s')
>
>
>
> On Thursday, 17 March 2016 14:30:36 UTC, Anthony wrote:
>>
>> According to the error, your field name is "field1reference table1", so 
>> you probably have an error in the field definition. Please show your model 
>> code.
>>
>> Anthony
>>
>> On Thursday, March 17, 2016 at 8:28:00 AM UTC-4, Heather Dawe wrote:
>>>
>>> Hi there,
>>>
>>> I have had this error in a couple of scenarios now. I have an 
>>> established and working web2py app and I wish to add a couple of tables to 
>>> the model. A number of fields in these new tables reference fields in 
>>> established tables. I get this error when trying to create the new tables
>>>
>>> <type 'exceptions.SyntaxError'> Field: invalid field name: 
>>> field1reference table1, use rname for "funny" names
>>>
>>> where 'field1' is the name of a field in the new table I am trying to 
>>> create that references table1 (the id field in table1). Given that all I am 
>>> trying to do is add a new table to my model which has a field that 
>>> references an existing table I don't see why this is a problem? I have 
>>> looked into it and searched for the error etc. I have tried to fix it by 
>>> changing to migrate='false' and fake_migrate='true' etc. but this has not 
>>> solved it. Can anyone please advise why I am getting this error and how to 
>>> sort it out?
>>>
>>> Many thanks,
>>> Heather
>>>
>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to