db.define_table("item",
...
Field('keywords', 'list:string', ...)
...
)
db.define_table('concrete_item',
Field('item_id', 'reference item'),
...
)
def edit():
item = db.item(request.args(0))
concrete_item = db.concrete_item(item_id=item.id)
fields = []
for f in item:
fields.append(f)
for f in concrete_item:
fields.append(f)
form = SQLFORM.factory(*fields)
# put values to form fields
for f in db.item:
form.vas[f.name] = item[f.name]
for f in db.concrete_item:
form.vas[f.name] = concrete_item[f.name]
if form.proccess().accepted:
# here call update_record, etc.
pass
return dict(form=form)
def edit()
item = db.item(request.args(0))
form = SQLFORM.factory(db.item, record=item)
return dict(form=form)
def edit():
item = db.item(request.args(0))
concrete_item = db.concrete_item(item_id=item.id)
fields = []
# before adding the the fields
db.item.keywords.default = item.keywords
# ---
for f in item:
fields.append(f)
for f in concrete_item:
fields.append(f)
form = SQLFORM.factory(*fields)
# put values to form fields
for f in db.item:
form.vas[f.name] = item[f.name]
for f in db.concrete_item:
form.vas[f.name] = concrete_item[f.name]
if form.proccess().accepted:
# here call update_record, etc.
pass
return dict(form=form)