Jim,
I did discover one thing yesterday - this line of code hides the table from
smartgrid:
db.supplier_contacts.supplier_id.readable=False
Took out that line and the supplier_contacts link appeared in the grid.
On Monday, November 26, 2012 4:12:22 PM UTC-5, Jim S wrote:
>
> Cliff
>
> In my table definition I use db.table_name just as in your example. And
> in my controller I have a mixture of both, some where I specify the linked
> tables and some where I just let smartgrid figure it out. Here is a sample
> model:
>
> benefitProgram = db.define_table('benefitProgram',
> Field('benefitProgramId', 'id', readable=False),
> Field('name', length=50, required=True, unique=True),
> format='%(name)s')
> db.benefitProgram.name.requires = [IS_NOT_EMPTY(), IS_NOT_IN_DB(db, db.
> benefitProgram.name)]
> db.benefitProgram._plural = 'Benefit Programs'
>
> benefitLevel = db.define_table('benefitLevel',
> Field('benefitLevelId', 'id', readable=False),
> Field('benefitProgramId', db.benefitProgram, required=True, label='Benefit
> Program'),
> Field('name', length=50, required=True),
> format='%(name)s')
> db.benefitLevel.benefitProgramId.requires = IS_IN_DB(db, db.benefitProgram
> .benefitProgramId, '%(name)s', zero='..')
> db.benefitLevel.name.requires = IS_NOT_EMPTY()
> db.benefitLevel._plural = 'Benefit Levels'
>
>
>
>
>
> This works fine generating the smartgrid with links.
>
> -Jim
>
>
> On Monday, November 26, 2012 2:52:57 PM UTC-6, Cliff Kachinske wrote:
>>
>> That alone is worth knowing.
>>
>> Do you identify the related tables using the db.tablename syntax or
>> 'reference tablename' syntax?
>>
>> Do you call the referencing id, for example, 'supplier_id', or just
>> 'supplier'?
>>
>> I'm guessing there's some subtle point I'm missing in my model files.
>>
>> On Monday, November 26, 2012 3:42:18 PM UTC-5, Jim S wrote:
>>>
>>> Sorry I don't have an answer for you but can confirm that linked_tables
>>> are working fine for me in 2.2.1.
>>>
>>> -Jim
>>>
>>> On Monday, November 26, 2012 12:06:49 PM UTC-6, Cliff Kachinske wrote:
>>>>
>>>> Smartgrid isn't picking up linked tables in V 2.2.1. Could I be
>>>> missing something obvious? Any suggestions gratefully accepted.
>>>>
>>>>
>>>> Here are three tables from my model.
>>>>
>>>> db.define_table(
>>>> 'suppliers',
>>>> Field('name', length=256, required=True, notnull=True),
>>>> Field('address', length=64),
>>>> Field('address_2', length=64),
>>>> # details omitted
>>>> ....
>>>> )
>>>>
>>>>
>>>> db.define_table(
>>>> 'supplier_contacts',
>>>> Field('supplier_id', db.suppliers),
>>>> Field('first_name', length=32, required=True, notnull=True),
>>>> # details omitted
>>>> ...
>>>> )
>>>>
>>>>
>>>> db.define_table('product_suppliers',
>>>> Field('product_id', db.products),
>>>> Field('supplier_id', db.suppliers),
>>>> Field('lead_time', 'integer', # details omitted
>>>> )
>>>>
>>>>
>>>> The smartgrid from this controller code fails to contain a link to
>>>> supplier_contacts. Worse, if I add a linked_tables argument the grid
>>>> displays no links at all.
>>>>
>>>> def smartindex():
>>>> form = SQLFORM.smartgrid(
>>>> db.suppliers,
>>>> ## linked_tables = [
>>>> ## db.supplier_contacts
>>>> ## ],
>>>> # links_in_grid=True,
>>>> # fields=[db.suppliers.name],
>>>> )
>>>> return dict(form=form)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
--