2015-10-12 2 views
2

Мне хотелось бы знать, как функция onchange работает с логическими и целочисленными полями. Предположим, что если одно логическое поле изменилось на True, значение соответствующего целого числа должно быть изменено.onchange функции в булевых полях в odoo 8

Заранее спасибо.

ответ

5

@ api.onchange

Этот декоратор вызовет вызов декорированной функции, если какой-либо из полей, указанных в декоратора изменяется в форме:

@api.onchange('fieldx') 
def do_stuff(self): 
    if self.fieldx == x: 
     self.fieldy = 'toto' 

В предыдущем образце я соответствует записи, которая в настоящее время редактируется в форме. Когда в контексте on_change вся работа выполняется в кеше. Таким образом, вы можете изменять RecordSet внутри своей функции, не беспокоясь об изменении базы данных. Это основное отличие от @ api.depends

При возврате функции различия между кешем и RecordSet будут возвращены в форму.

Просмотр управления

Одним из большого улучшения нового API является то, что OnChange автоматически вставляются в форму для вас в простой форме. Вам больше не нужно беспокоиться об изменении представлений.

Предупреждение и домен

Чтобы изменить домен или отправить предупреждение просто возвращает обычный словарь. Будьте осторожны, чтобы не использовать @ api.one в этом случае, поскольку он будет искажать словарь (поместите его в список, который не поддерживается веб-клиентом).

+0

спасибо, сэр .. разработано !! –

Смежные вопросы