我有一个父模型和一个子模型,这里是代码:
class parent_model(osv.osv):
_name = 'parent_model'
_columns = {
'line_ids' : fields.one2many('child_model', 'line_id', 'Line ID', ondelete='cascade'),
'description' : fields.text('Description', required=True),
'grand_total' : fields.float('Grand Total'),
}
class child_model(osv.osv):
_name = 'child_model'
_columns = {
'line_id' : fields.many2one('parent_model', string='Line ID', required=True),
'item' : fields.char('Item', required=True),
'amount' : fields.float('Amount', required=True),
'qty' : fields.integer('Qty', required=True),
'subtotal' : fields.float('Total', readonly=True),
}
def get_subtotal(self, cr, uid, ids, num1, num2, context=None):
res = {}
if num1 and num2:
res['subtotal'] = num1 * num2
return {'value': res}
在child_model中,我成功地在事件get_subtotal中乘以“amount”和“qty”,这里是xml:
<tree >
<field name="item" />
<field name="amount" on_change="get_subtotal(amount, qty)" />
<field name="qty" on_change="get_subtotal(amount, qty)" />
<field name="subtotal" />
</tree>
我的问题是如何在child_model中计算(求和)小计,并使用onchange事件将值存储在parent_model中的grand_total字段中。 需要帮助,谢谢
答案 0 :(得分:1)
第一:将一切都移到新的api。
将onchange 添加到与line_ids
挂钩的父模型,例如:
@api.onchange('line_ids')
def _onchange_line_ids(self):