論理的な観点からは、たとえば、顧客を追加する前に住所を追加しても意味がない場合があります。
db.define_table('address',
Field('line1','string', required=True),
Field('line2','string'),
Field('suburb','string', required=True),
Field('post_code','integer'),
Field('email','string')
)
db.address.post_code.requires = IS_INT_IN_RANGE(0000, 9999)
db.address.email.requires = IS_EMAIL()
db.define_table('customer',
Field('name', 'string', required=True, unique=True),
Field('locations', 'list:reference db.address', required=True),
Field('comment', 'string')
) # quick aside: how would I ensure there isn't another customer with same name+location?
db.address.requires = IS_IN_DB(db, db.address, '%(line1)s' + ', ' + '%(suburb)s', multiple=True)
したがって、住所を含む顧客を作成できる1つのフォームを生成できれば、管理ははるかに論理的になります。
ただし、すでにデータベースにあるレコードから選択できると便利ですが、[追加]ボタン(javascriptでロールダウン)を使用すると、フィールドが空の場合にデフォルトで開きます(そうでない必要があります)。 。
このネストされたCRUDをどのように生成しますか?
すべての提案をありがとう