将默认值分配给odoo中特定用户组的Many2one字段

时间:2016-07-20 08:56:42

标签: openerp odoo-8 openerp-8 odoo-9

我通过以下代码在default value分配analytic distributionaccount.invoice.line字段

        def _get_default_account(self, cr, uid, context=None):
            res = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('code','=','LAL')], context=context)
            return res and res[0] or False

        _defaults = {
           'analytics_id': _get_default_account,
           }

但现在我想为特定的用户组设置默认值。我想为一个组设置一个值,为其他组设置其他值。意味着我想为不同的用户设置两个不同的默认值。 有人请给我一些想法。我会非常感激......

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用has_group方法。你应该这样做:

if self.env['res.users'].has_group('base.group1'):
    res = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('code','=','LAL')], context=context)
    return res and res[0] or False
elif self.env['res.users'].has_group('base.group2'):
    res = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('code','=','SAS')], context=context)
    return res and res[0] or False

依此类推。