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