2016-04-29 2 views
0

У меня есть поле many2one, ссылающееся на модель res.users. У меня две группы, менеджер и пользователь. Основываясь на группе, как я могу фильтровать пользователей. Так что поле many2one дает только менеджер или пользователь?как отфильтровать поле many2one на основе групп в odoo

ответ

1

Я разделяю один ответ. Проверьте, полезно ли это или нет. (я не пробовал)

Когда вы создаете группу в оду, вы можете выбрать соответствующую группу при создании пользователя. Для этого odoo автоматически создаст поле выбора, похожее на sel_group_14_15. Например, если есть две группы, скажем, Пользователь и Менеджер (как в вашем случае). Для этого поля выбора значение ключа пользователя может быть 14, а значение ключа менеджера - 15. Поэтому для фильтрации на основе группы используйте это поле в домене. Поскольку это поле является частью res.users, вы можете напрямую использовать это поле в домене.

Например, обратитесь к этому.

domain=[('sel_group_14_15','=',14)] --- for filtering users 
domain=[('sel_group_14_15','=',15)] ---- for filtering manager 
0

Лучший способ установить эти фильтры следующим образом:

user = fields.Many2one(comodel_name='res.users', string="User", domain="[]") 

@api.onchange('some_field') 
@api.model 
def set_domain(self): 
    group = self.env.ref(module_name.group_xml_id)  
     users = [] 
     for user in group.users: 
      users.append(user.id) 

     return {'domain':{'user':[('id','in',users)]}} 
Смежные вопросы