【问题标题】:How to call a compute function inside a Onchange() in odoo 10?如何在 odoo 10 的 Onchange() 中调用计算函数?
【发布时间】:2018-07-05 14:31:58
【问题描述】:

我们如何在 odoo 中调用 onchange() 中的计算函数。 例如 !我有两个字段(start_date 和 end_date)。 更改 start_date 时 end_date 将如何自动更改。

这是我的代码:

@api.onchange('start_date')
def onchange_start_date(self):
    self.update({
       'validity_date': self.compute_next_days()     
     })

def compute_next_days(self, exprdate):
    ten_days = relativedelta(days=10)
    expr_date = fields.Date.from_string(exprdate)
    return fields.Date.to_string(expr_date + ten_days)

【问题讨论】:

    标签: python-3.x odoo


    【解决方案1】:

    您正在调用self.compute_next_days() 没有exprdate 参数,您可以通过这种方式更新validity_date

    self.validity_date = self.compute_next_days(self.start_date)
    

    您的onchange 方法应该是:

    @api.onchange('start_date')
    def onchange_start_date(self):
        self.validity_date = self.compute_next_days(self.start_date)
    

    希望这个回答对你有帮助。

    【讨论】:

      【解决方案2】:

      您可以为此使用@api.depends(fields_name)。在你的计算方法中添加@api.depends@api.onchange两者。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多