循环记录行方法 - Odoo v8
Loop through record lines method - Odoo v8
我有这个方法:
@api.onchange('qty', 'consumed_qty')
def _remaining_func(self):
for qty in self.isbn:
if self.qty or self.consumed_qty:
self.remaining_qty = self.qty +(-self.consumed_qty)
但我需要它循环遍历我的行记录(One2many 字段),现在,如果我只添加一条记录,它工作得很好,但如果我添加两条或更多条记录,它会抛出 Expected singleton
错误。
那么,我该如何循环使用这个方法呢?
我添加了 for qty in self.isbn
但没有成功。
这是声明此方法的 class:
class bsi_production_order_lines(models.Model):
_name = 'bsi.production.order.lines'
production_order = fields.Many2one('bsi.production.order', string="Production Orders")
isbn = fields.Many2one('product.product', string="ISBN", domain="[('is_isbn', '=', True)]")
qty = fields.Float(string="Quantity")
consumed_qty = fields.Float(string="Consumed quantity")
remaining_qty = fields.Float(string="Remaining quantity", compute="_remaining_func")
有什么想法吗?
你可以试试:
@api.onchange('qty', 'consumed_qty')
def _remaining_func(self):
for s in self:
for qty in s.isbn:
if s.qty or s.consumed_qty:
s.remaining_qty = s.qty +(-s.consumed_qty)
希望对你有所帮助。
我有这个方法:
@api.onchange('qty', 'consumed_qty')
def _remaining_func(self):
for qty in self.isbn:
if self.qty or self.consumed_qty:
self.remaining_qty = self.qty +(-self.consumed_qty)
但我需要它循环遍历我的行记录(One2many 字段),现在,如果我只添加一条记录,它工作得很好,但如果我添加两条或更多条记录,它会抛出 Expected singleton
错误。
那么,我该如何循环使用这个方法呢?
我添加了 for qty in self.isbn
但没有成功。
这是声明此方法的 class:
class bsi_production_order_lines(models.Model):
_name = 'bsi.production.order.lines'
production_order = fields.Many2one('bsi.production.order', string="Production Orders")
isbn = fields.Many2one('product.product', string="ISBN", domain="[('is_isbn', '=', True)]")
qty = fields.Float(string="Quantity")
consumed_qty = fields.Float(string="Consumed quantity")
remaining_qty = fields.Float(string="Remaining quantity", compute="_remaining_func")
有什么想法吗?
你可以试试:
@api.onchange('qty', 'consumed_qty')
def _remaining_func(self):
for s in self:
for qty in s.isbn:
if s.qty or s.consumed_qty:
s.remaining_qty = s.qty +(-s.consumed_qty)
希望对你有所帮助。