2016-04-29 11 views
0

私はres.usersモデルを参照するmany2oneフィールドを持っています。私は2つのグループ、マネージャーとユーザーを持っています。どのように私はユーザーをフィルタリングすることができますグループに基づいて。 many2oneフィールドはマネージャーかユーザーだけに与えられますか?odooのグループに基づいてmany2oneフィールドをフィルタリングする方法

答えて

1

私は1つの答えを共有しています。有用かどうかチェックしてください。 (私は試していませんでした)

odooでグループを作成すると、そのユーザーを作成するときに対応するグループを選択できます。この目的のために、odooは自動的にsel_group_14_15のような選択フィールドを作成します。たとえば、2つのグループがある場合、UserとManagerを(あなたの場合のように)言う。この選択フィールドでは、ユーザーのキー値は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)]}}