Odoo错误:返回self.models [model_name] KeyError:' res_groups_users_rel'

时间:2017-03-15 14:37:26

标签: python-2.7 many-to-many openerp odoo-9 many-to-one

我需要制作UI many2one dopdown list,我可以识别依赖于Manager组角色的用户。

现在我有下拉字段:

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

我收到了一个错误:

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

我不知道如何更改此功能并从amy2many关系中获取价值。

我将我的功能改为:

def _get_users(self):     pickings = self.env [' res.groups']。浏览(61).users     pickings_available = []     挑选采摘:         pickings_available.append(采摘)     return pickings_available

和字段:

test = fields.Many2one(' res.users','有些文字',默认= _get_users,track_visibility =' onchange')

我记录了函数_get_users并获取了值:[res.users(9,), res.users(65,)]

但我仍然无法在我的测试字段下拉列表中获取这些值。我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您尝试获取属于某个组的所有用户,为什么不执行以下操作:

self.env['res_groups'].browse(61).users

在旁注中,您可能会收到错误,尝试将列表作为默认值分配给Many2one字段。

此外,您似乎将属于某个组的用户分配给指定用于存储对组的引用的字段。

如果您需要一个字段来选择属于ID为61的组的用户,您可以执行以下操作:

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