gpt4 book ai didi

python - 保存后字段归零

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:03 27 4
gpt4 key购买 nike

我在 module1 中有这个类:

class A(models.Model):
_name="a"
b_id = field.Many2one("b")
tax_old = fields.Float()
tax_value = fields.Float(string="Tax", related = 'b_id.tax_value', store=True)
all_taxes = fields.Float(_compute='compute_all')
@api.depends('tax_value')
def compute_all(self):
self.all_taxes = self.tax_value + self.tax_old
self.update()

module2 我有这个类:

class B(models.Model):
_name="b"
a_ids = fields.One2many("a","b_id")
tax_value = fields.Float(string="Tax")

现在在 A View 中,当我更改 b_id 值时,tax_value 工作正常并且 compute_all 工作正常,但是当我保存此记录时,< em>all_taxes 不采用 tax_value 字段,仅采用 tax_old。当我再次打开记录表单 View 并在 tax_value 中手动写入一个值时,它完全可以正常工作。

最佳答案

在你的计算方法上使用 b_id 就足够了,因为它是相关的:

@api.multi
@api.depends('b_id')
def compute_all(self):
for record in self:
record.all_taxes = record.b_id.tax_value + record.tax_old

可以使用多记录记录集调用计算方法。所以在里面使用一个for循环。而且您不必在最后执行 update()

关于python - 保存后字段归零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49449324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com