The table in db.py

db.define_table('Edge',
 
Field('hubID',db.Hub,default='',notnull=True,ondelete='CASCADE',writable=False,readable=False),
 
Field('byNodeID',db.Node,default='',notnull=True,ondelete='RESTRICT'),
 
Field('ofNodeID',db.Node,default='',notnull=True,ondelete='CASCADE'),
   ...
    migrate=False)

db.Edge.hubID.represent=lambda hubID, row:
db(db.Hub.id==hubID).select().first().name
db.Edge.byNodeID.represent=lambda byNodeID,
row:db(db.Organization.nodeID==byNodeID).select().first().name
db.Edge.ofNodeID.represent=lambda ofNodeID, row:
db(db.Organization.nodeID==ofNodeID).select().first().name

The function:

@auth.requires(auth.has_membership(HUB) or auth.has_membership(ADMIN))
def edge():
    form=rows=rowcount=[]
 
rows=rows=db(db.HubEdge.hubID==session.hubadminID).select(db.HubEdge.ALL)
    return dict(rows=rows)

When in the view I simply do:

{{=rows}}

The name of the Organization is being displayed. When I do:

{{for row in rows:}}
  <tr>
    <td>{{=row.byNodeID}}</td>
    <td>{{=row.ofNodeID}}</td>
  </tr>
{{pass}}

... the byNodeID and ofNodeID are being displayed. I guess there is
something wrong syntactically?


Kind regards,

Annet

Reply via email to