О методе onchange, возвращающем домен или предупреждение в odoo8 - PullRequest
0 голосов
/ 21 сентября 2019
  1. Я пытался следовать официальному примеру odoo8 ,, но у меня не работает:

class TestMove(models.Model):
    _name = 'test.move'
    _description = 'Stock Requisition Return'

    num1 = fields.Float(string='num1')
    num_float = fields.Float(string='num_float', compute="_compute_num_float", store=True)
    num2 = fields.Integer(string='num2')
    age = fields.Integer(compute='_compute_age')
    age2 =fields.Integer(compute='_compute_age2', store=True)
    now_list_price = fields.Float(
        string='Now List Price', help='Now List Price', digits=(10, 10))
    product_id = fields.Many2one(comodel_name='product.product')

    ......

    @api.one
    @api.onchange('num1')
    def _onchange_num2(self):
        now_ = self.num1 + 1
        _logger.info('num2 is:%s', now_)
        self.update({'num2': now_})
        return {
            'domain': {'product_id': [('id', 'in', [now_])]},
            'warning': {'title': "Warning", 'message': "What is this?"}
        }

class ProductProduct(models.Model):
    _name = 'product.product'
    _description = 'Product'
    _rec_name = 'name'

    name = fields.Char()
    price_unit = fields.Float(default=Decimal('13.14'))

num2 изменилось, но домен и предупреждение не возвращаются;Любое предложение, пожалуйста.Заранее спасибо.

1 Ответ

0 голосов
/ 26 сентября 2019

Проблема вызвана @api.one декоратором, просто удалите его, и метод onchange должен работать правильно.

...