I defined tables Day and OpeningHours: db.define_table('Day', Field('name',length=16, default='',notnull=True,unique=True), Field('byday',length=2,default='',notnull=True,unique=True), format='%(name)s', migrate=False)
db.define_table('OpeningHours', Field('nodeID','reference Node',default='',notnull=True,ondelete='CASCADE',writable=False,readable=False), Field('dayID','reference Day',default='',notnull=True,ondelete='RESTRICT'), Field('date',type='date'), Field('fromTime',type='time'), Field('toTime',type='time'), migrate=False) When I query the database, rows (OpeningHours and Day joined) reads like: nodeID fromTime toTime byday 1 09:00 12:00 MO 1 15:00 22:00 MO 1 09:00 22:00 TU 1 09:00 12:00 WE 1 12:00 15:00 WE 1 09:00 22:00 TH 1 09:00 22:00 FR 1 09:00 13:00 SA 1 10:00 13:00 SO In a function I set the date on the fields as follows: nowdate=request.now.date() nowday=request.now.weekday() for row in session.oh_rows: if nowday==row.Day.id-1: row.OpeningHours.date=nowdate else: byday=row.Day.byday row.OpeningHours.date=nowdate+relativedelta(weekday=byday) For some reason this results in an error: Traceback (most recent call last): File "/Library/Python/2.5/site-packages/web2py/gluon/restricted.py", line 205, in restricted exec ccode in environment File "/Library/Python/2.5/site-packages/web2py/applications/bootstrap/controllers/calendar.py" <http://127.0.0.1:8000/admin/default/edit/bootstrap/controllers/calendar.py>, line 178, in <module> File "/Library/Python/2.5/site-packages/web2py/gluon/globals.py", line 173, in <lambda> self._caller = lambda f: f() File "/Library/Python/2.5/site-packages/web2py/applications/bootstrap/controllers/calendar.py" <http://127.0.0.1:8000/admin/default/edit/bootstrap/controllers/calendar.py>, line 57, in openingHours row.OpeningHours.startDate=nowdate+relativedelta(weekday=byday) File "applications/bootstrap/modules/relativedelta.py", line 278, in __radd__ weekday, nth = self.weekday.weekday, self.weekday.n or 1 AttributeError: 'str' object has no attribute 'weekday' When I manually set byday=row.Day.byday to byday=MO the code runs without problems, changing MO to TU, WE, FR, SA and SU also runs without problem. What's wrong with row.Day.byday? When I put {{=row.Day.byday}} in the view it displays: MO TU WE etc. KInd regards, Annet.