db.define_table('AccTrans',
Field('Timestamp', 'datetime', default=request.now, writable=False),
Field('Bank', 'reference Bank_Accounts', writable=False), #e.g. PayPal, Cambridge Trust, ...
Field('Account', 'reference CoA',
requires=IS_IN_DB(db, 'CoA.id', '%(Name)s', orderby=
db.CoA.Name)),
Field('Event', 'reference Events',
requires=IS_EMPTY_OR(IS_IN_DB(db, 'Events.id', '%(Event)s', orderby=~db.Events.Date)),
comment='leave blank if not applicable'),
Field('Amount', 'decimal(8,2)',
comment='enter full amount of check (negative) or deposit (positive); split using Edit if multiple accounts',
requires=IS_DECIMAL_IN_RANGE(-10000, 10000)), # >=0 for asset/revenue, <0 for liability/expense
Field('Fee', 'decimal(6,2)', requires=IS_EMPTY_OR(IS_DECIMAL_IN_RANGE(-1000,100))), # e.g. PayPal transaction fee, <0 (unless refunded)
Field('CheckNumber', 'integer', default=None, requires=IS_EMPTY_OR(IS_INT_IN_RANGE(1,99999)),
comment='enter check number if recording a check written'),
Field('Accrual', 'boolean', default=True, readable=True, writable=False),
Field('FullAmt', 'decimal(8,2)', writable=False, readable=False), # for an accrual, the original unsplit amount
Field('Reference', 'string', writable=False),
Field('Notes', 'text'),
singular='Transaction', plural='Check_Register')
Database administration displays the table rows just fine.
Clicking on a record's id field should display the record for editing. Instead I get an error, looks like when its setting up the widget for the first reference field. In my application, grid and smartgrid have no problem with my model.