【发布时间】:2020-03-22 02:31:02
【问题描述】:
我怎样才能将我的代码留在一个循环中?它限制了我这样做,因为它们具有不同的定义,所以我无法减少代码行。
input_quantity= fields.Float(string="input_quantitya", compute="input_quantity")
@api.one
@api.depends ("detail_book_ids")
def _stock_entry (self):
sum = 0
for detail_book in self.detail_book_ids:
sum + = book_detail.quantity_debted
self.input_quantity = sum
merge_number= fields.Float(string="merge_number", compute="_stock_merma")
@api.one
@api.depends ("detail_book_ids")
def _stock_merma (self):
sum = 0
for detail_book in self.detail_book_ids:
sum + = detail_book.quantity_merm
self.merge_number = sum
output_quantity= fields.Float(string="output_quantity", compute="_stock_output")
@api.one
@api.depends ("detail_book_ids")
def _stock_output (self):
sum = 0
for detail_book in self.detail_book_ids:
sum + = book_detail.quantity_to have
self.output_quantity = sum
我需要这样做,因为这就是我收到以下错误的原因: RecursionError:调用 Python 对象时超出了最大递归深度。
计算库存的字段如下
stock= fields.Float(string="stock", compute="_stock")
@api.one
@api.depends('input_quantity','output_quantity','existencia','merge_numbe')
def _stock(self):
for rec in self:
rec.stock = rec.existencia + (rec.input_quantity - (rec.output_quantity + rec.merge_numbe))
【问题讨论】:
-
请添加错误日志?
-
它没有向我显示比上述错误更多的错误,但它仅在我选择合并时发生,因为与其他错误相比,它会增加和减少库存