I do a query and 'print' the return. Here's a snippet from my controller:
(db.Addl_institution_info.Start_date < db.Meet.Start_date) &
(db.Addl_institution_info.End_date > db.Meet.Start_date) &
(db.Participant_team.Is_home_team)).select(
db.Addl_info_item.ALL,
join = [db.Participant_team.on(
db.Team.on(db.Participant_team.Team == db.Team.id), db.Institution.on(db.Team.Institution ==
db.Addl_institution_info.on(
db.Addl_institution_info.Institution ==
db.Addl_institution_info.Addl_info_item)])
...
Later in the same function (displayed with line numbers):
240: print 'Start loop at 240; instAttch:\n'
241: print instAttch
242: for attch in instAttch:
243: print 'attch:\n'
244: #
245: print attch
246: if attch.Addl_info_item.Email_text:
The output from line 241 looks like a Rows object to my rookie eye:
Start loop at 240; instAttch:
Addl_info_item.id,Addl_info_item.File_path,Addl_info_item.Email_text,Addl_info_i
tem.Content_id,Addl_info_item.Internal_description
2,C:\Users\mjf\Documents\MJF\WebSite\NCAA\private\Test DU Parking pass.dat,Test
email text: addl_info_item 2,,item 2
attch:
<Row {'Internal_description': 'item 2', 'Addl_pool_info': <gluon.dal.Set object
at 0x05DAA4D0>, 'update_record': <function <lambda> at 0x05F158B0>, 'Addl_instit
ution_info': <gluon.dal.Set object at 0x05DAA6B0>, 'File_path': 'C:\\Users\\mjf\
\Documents\\MJF\\WebSite\\NCAA\\private\\Test DU Parking pass.dat', 'Email_text'
: 'Test email text: addl_info_item 2', 'Content_id': '', 'Addl_meet_info': <gluo
n.dal.Set object at 0x05DAA1F0>, 'id': 2, 'delete_record': <function <lambda> at
0x05F15F30>}>
I do a 'for ...' on instAttch at line 242 and get:
<type 'exceptions.KeyError'> 'Addl_info_item'
The traceback tells me it's at line 246:
if attch.Addl_info_item.Email_text:
What am I missing?