I have two tables:
-----------------------------------------
db.define_table('providers',
               Field('name'),
               Field('email'),
               Field('tel')

db.define_table('data',
               Field('dataowner', db.auth_user, default=auth.user_id,
writable=False, readable=False), #this points at the auth user
               Field('provider', db.providers),
               Field('speed', 'integer')

db.data.provider.requires=IS_IN_DB(db, 'providers.id','providers.name')
---------------------------------------------

My controller has this code

def map():
    response.view="map.html"
    # selects the data postcode fields from the database
    # returns an interable object
    rows=db().select(db.data.lon, db.data.lat, db.data.provider)
    return dict(rows=rows)

-----------------------------------------------

And my view this code

 {{for i,row in enumerate(rows):}}{{if not i==0:}},{{pass}}
      { lat: {{=row.lat}}, lng: {{=row.lon}}, name: "{{=row.provider.name}}" }
      {{pass}}

------------------------------------------------
As you can see, the provider field in the data table stores the provider id.

I'm confused!

Although this does work I don't know why!, is it the correct way to
reference the name field from the providers table?

Thanks!

Chris

Reply via email to