2017-03-15 4 views
0

Managerグループの役割に依存するユーザーを識別できるUI many2one dopdown listを作成する必要があります。Odooエラー:return self.models [model_name] KeyError: 'res_groups_users_rel'

は、今私は、ドロップダウンフィールドがあります。

test = fields.Many2one('res.groups', 'Purchase request type', default=_get_users, track_visibility='onchange') 

をそして私は管理者グループの役割に依存するすべてのユーザーを識別できる機能を書き込もうとしました。

def _get_users(self): 
    pickings = self.env['res_groups_users_rel'].search([('gid','=',61)]) 
    pickings_available = [] 
    for picking in pickings: 
      pickings_available.append(picking) 
    return pickings_available 

そして、私はエラーました:私はこの機能を変更し、amy2many関係から値を取得する方法がわからない

return self.models[model_name] 
KeyError: 'res_groups_users_rel' 

を。

私に自分の機能を変更:pickingsにピッキングするため pickings = self.env [ 'res.groups'](61)ブラウザ.users pickings_available = [] :

デフ_get_users(自己)。 : pickings_available.append(ピック) 戻りpickings_available

とフィールド:

テスト= fields.Many2one( 'res.users'、 'いくつかのテキスト'、デフォルト= _get_users、track_visibility = 'のonchange')

私は機能_get_usersをログに記録し、値を取得する:[res.users(9,), res.users(65,)]

をしかし、私はまだ私のテストフィールドのドロップダウンメニューにこれらの値を取得することはできません。私が間違っていることは何ですか?

答えて

1

あなたがグループに属しているすべてのユーザーを取得しようとしているなら、なぜない次

サイドノートで
self.env['res_groups'].browse(61).users 

、あなたがエラーを取得する可能性があります、デフォルト値としてリストを割り当てるしようとしていますMany2oneフィールドに追加します。

また、グループに属するユーザーを、グループへの参照を格納するように指定されたフィールドに割り当てるように見えます。

あなたはID 61でグループに属するユーザーを選択するには、フィールドを持っている必要がある場合は、次の操作を行うことができます:

test = fields.Many2one('res.users', 'Some description', domain="[('groups_id', 'in', [61])]") 
+0

こんにちは、私は縛ら:pickings = self.env [ 'res.groupsを'] .browse(61).usersしかし、私のテストフィールドからは、フィルタリングせずにすべてのグループを取得しましたが、ユーザーは取得しませんでした。 – fueggit

+0

グループを表示するようにフィールドを指定しました( '' res.groups''モデルを参照するように定義することによって)。グループをフィルタリングする場合は、ドメインを指定する必要があります。ユーザーに表示する場合は、ユーザーモデルを参照するようにしてください。 – dgeorgiev

+0

私の質問を編集しました。私の機能を変更しますが、私はまだ私が望む結果を得ることができません。テストフィールドをtest = fields.Many2one( 'res.users'、 'Some description'、domain = "[( 'groups_id)'、 'in'、[61])])に変更するだけで、 res_users(ctx:)> " – fueggit

関連する問題