我已经使用以下字段设置了db表:
db.define_table('balance',
Field('income', 'integer'),
Field('income_description', "text"),
Field('expenses', 'integer'),
Field('expenses_discription', "text"),
Field('loan', 'integer'),
Field('loan_discription'))
然后使用以下形式的基本功能:
def index():
form = SQLFORM(db.balance).process()
if form.accepted:
redirect(URL('data_display'))
session.flash = 'Records Successfully Updated!'
return locals()
每次输入和提交带有新整数的表格时,如何在收入,费用或贷款中添加新金额?
我希望在简单的Python中实现类似这样的东西:
储蓄=(收入 - 支出) - 贷款
因此,每次我输入收入或费用或贷款的新金额时,我都会添加该金额并更新数据库中的记录。
答案 0 :(得分:0)
您需要使用的是Computed Field:
>>> db.define_table('item',
Field('unit_price','double'),
Field('quantity','integer'),
Field('total_price',
compute=lambda r: r['unit_price']*r['quantity']))
>>> r = db.item.insert(unit_price=1.99, quantity=5)
>>> print r.total_price
9.95
在你的情况下,它会是这样的:
db.define_table('balance',
Field('income', 'integer'),
Field('income_description', "text"),
Field('expenses', 'integer'),
Field('expenses_discription', "text"),
Field('loan', 'integer'),
Field('loan_discription')
Field('savings', compute=lambda r: (r['income'] - r['expenses']) -r['loan'])
)