# The origin of the requirement: i.e. whether it is fundamental or
derived
db.define_table('origin',
Field('name', requires=IS_NOT_EMPTY()),
Field('key', requires=IS_NOT_EMPTY()),
format='%(name)s'
)
# The category of the requirement
db.define_table('kind',
Field('name', requires=IS_NOT_EMPTY()),
Field('key', requires=IS_NOT_EMPTY()),
format='%(name)s'
)
# The actual requirement object
db.define_table('requirement',
Field('title',requires=IS_NOT_EMPTY()),
Field('body', 'text',requires=IS_NOT_EMPTY()),
Field('rationale', 'text'),
Field('preconditions', 'text'),
Field('postconditions', 'text'),
Field('traces_to', 'reference
requirement',requires=IS_EMPTY_OR(IS_IN_DB(db, 'requirement.id',
'requirement.title'))),
Field('origin', db.origin,requires=IS_IN_DB(db, 'origin.id',
'origin.name')),
Field('kind', db.kind,requires=IS_IN_DB(db, 'kind.id',
'kind.name')),
Field('is_safety_critical','boolean'),
Field('updated_by', db.auth_user, default=auth.user_id,
update=auth.user_id, readable=False, writable=False),
Field('updated_on', 'datetime', default=request.now,
update=request.now, readable=False, writable=False),
format='%(title)s'
)
# Put fake data in the requirements table
from gluon.contrib.populate import populate
if db(db.origin.id>0).count() == 0:
populate(db.origin,5)
db.commit()
if db(db.kind.id>0).count() == 0:
populate(db.kind,5)
db.commit()
if db(db.requirement.id>0).count() == 0:
populate(db.requirement,50)
db.commit()
On Oct 19, 8:16 pm, BigBaaadBob <[email protected]> wrote:
> I can reliably create this problem with a model that contains
> "references xxx" and using populate. Trying to access the table in
> the db manager causes the referenced error.