Проблема в odoo 8 с отображением предупреждающего сообщения - PullRequest
1 голос
/ 21 марта 2019

Я пытаюсь проверить поле «емкость» с помощью onchange decorator, но по какой-то причине, когда я отправляю предупреждающее сообщение, предыдущая строка перестает работать. Шаблон обновляет поле без предупреждения

@api.onchange('capacity')
def check_capacity_values(self):
    if self.capacity<0:
        self.capacity=0
        raise Warning(_('wrong capacity.'))

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Вы можете использовать словарь в качестве возвращаемого значения для методов, оформленных api.onchange.Ключ для предупреждающих сообщений будет warning, а значение другого словаря - с ключами title и message.Пример:

return {
    'warning': {'title': "WARNING!",
                'message': "It isn't allowed to have a negative capacity!"}
}
0 голосов
/ 22 марта 2019

Я думаю, что проблема может заключаться в том, что изменения, которые вы внесли в self.capacity непосредственно перед поднятием предупреждения, не сохраняются в базе данных, потому что вы используете @ api.onchange, поэтому новое значение просто отображается в пользовательском интерфейсе, но не хранится в базе данных.

Попробуйте вместо этого использовать @ api.depends, изменение будет отражено как в пользовательском интерфейсе, так и в базе данных.

...