Odoo - добавить фильтр домена в поле после создания

Я новичок в odoo, у меня есть два раскрывающихся списка в моих моделях, которые загружаются из res.users. Что я хочу сделать, так это то, что когда кто-то выбирает "Администратор" или любого другого пользователя в first_approver, этот выбранный пользователь должен быть удален из раскрывающегося списка second_approver

class test(models.Model):
_name = 'test.test'

name = fields.Char()
first_approver = fields.Many2one('res.users')
second_approver = fields.Many2one('res.users')

Я думаю, что это можно сделать, добавив фильтр домена на second_approver, но я не знаю, как обновить определение поля в методе onChange.


person Ancient    schedule 08.06.2017    source источник


Ответы (2)


Если вам нужен домен, примените следующее

first_approver= fields.Many2one('res.users')
second_approve= fields.Many2one('res.users', domain="[('id', '!=', first_approver)]")

Таким образом, first_approver не будет отображаться в поле second_approver.

Дополнительные параметры полей и другую справку по разработке можно найти в Документация Odoo.

person Alpesh Valaki    schedule 08.06.2017
comment
Отлично ! Большое спасибо дружище! - person Ancient; 08.06.2017

Вы также можете применить тот же домен в xml. если вы добавите домен в файл .py(python), то же самое будет применяться и в базе данных.

<field name="first_approver"/>
<field name="second_approve domain="[('id', '!=', first_approver)]"/>
person Community    schedule 11.06.2017
comment
Это сработало для меня, большое спасибо, искал это некоторое время. - person Hiren Jungi; 19.02.2018