首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Odoo V10 -计算场

Odoo V10 -计算场
EN

Stack Overflow用户
提问于 2018-10-02 10:39:49
回答 2查看 307关注 0票数 1

这里是我的计算字段:

代码语言:javascript
复制
half_pension_days_value = fields.Integer(string='Day value', copy=False, compute='convert_bin_dec')

这里是我的函数:

代码语言:javascript
复制
@api.multi
def convert_bin_dec(self):
    if self.half_pension:
        print "Je suis dans la fonction convert"
        self.half_pension_days_value = 5

遇到的问题:

由于布尔half_pension的状态,一旦我启动这个函数,我的打印就开始循环。我想问题就出在这行-> self.half_pension_days_value = 5

但为什么?

编辑:按顺序排列的

代码语言:javascript
复制
@api.model
def create(self, vals):
    record = super(ResPartnerSchool, self).create(vals)
    record.convert_bin_dec()
    return record


@api.multi
def write(self, vals):
    result = super(ResPartnerSchool, self).write(vals)
    self.convert_bin_dec()
    return result

这里我的错误-> RuntimeError:调用Python对象时超过了最大递归深度

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-13 12:29:49

您的问题是:当您这样做时,convert_bin_dec()方法调用对象的write()方法:self.half_pension_days_value = 5write()方法再次调用convert_bin_dec()方法,因此您有递归调用。

要解决这类问题,您必须使用@api.depends装饰器。

试着用这个:

代码语言:javascript
复制
@api.multi
@api.depends('half_pension')
def convert_bin_dec(self):
    for record in self:
        if record.half_pension:
            print "Je suis dans la fonction convert"
            record.half_pension_days_value = 5

不要忘记删除write()create()方法中的create()

票数 1
EN

Stack Overflow用户

发布于 2018-10-06 05:09:45

Hennion

你说过half_pension是你的布尔字段。然后试试下面的代码:

代码语言:javascript
复制
@api.multi
def convert_bin_dec(self):
    for rec in self:
        if rec.half_pension == True:
            print "Je suis dans la fonction convert"
            rec.half_pension_days_value = 5

or您可以打破您的function.it限制多个条目。

代码语言:javascript
复制
@api.multi
def convert_bin_dec(self):
    for rec in self:
        if rec.half_pension:
            print "Je suis dans la fonction convert"
            rec.half_pension_days_value = 5
            break
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52606704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档