gpt4 book ai didi

odoo - 从odoo中的只读字段保存值

转载 作者:行者123 更新时间:2023-12-01 13:19:34 25 4
gpt4 key购买 nike

我在表单字段总和上有 3 个字段是只读的。单击“从只读字段保存数据”后,字段未存储在数据库中。

示例:

class myClass(models.Model):

number_1 = fields.Integer(store=True,default=0)
number_2 = fields.Integer(store=True,default=0)
sum = fields.Integer(store=True)

@api.onchange('number_1','number_2')
def compute_sum(self):
total = self.number_1 + self.number_2
self.sum = total

最佳答案

在这种情况下,我更喜欢计算域。只读字段不会被公式更改保存(例如更改事件)。在 Odoo 11 中,为 View 中的这种行为引入了一个新选项 force_save,但以前的版本没有这个选项(社区模块除外,例如 web_readonly_bypass by OCA)。

计算域的解决方案:

class myClass(models.Model):

number_1 = fields.Integer()
number_2 = fields.Integer()
sum = fields.Integer(compute="compute_sum", store=True)

@api.depends('number_1','number_2')
@api.multi
def compute_sum(self):
for record in self:
total = record.number_1 + record.number_2
record.sum = total

不需要更改 View 定义。并且在普通的 Integer 字段中也不需要 store 参数。默认值 0 已经是 Integer 的默认值,因此需要定义它。

您不必在 sum 的 View 中显式定义 readonly,因为默认情况下,没有逆向方法的计算字段是只读的。

关于odoo - 从odoo中的只读字段保存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50930525/

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