Как вызвать функцию вычисления внутри Onchange () в odoo 10? - PullRequest
0 голосов
/ 05 июля 2018

Как мы можем вызвать вычисляемую функцию внутри onchange () в odoo. Например ! у меня есть два поля (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)

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вы можете использовать @api.depends(fields_name) для этого. В вашем методе вычисления добавьте @api.depends и @api.onchange оба.

0 голосов
/ 06 июля 2018

Вы звоните 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)

Я надеюсь, что этот ответ может быть полезным для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...