为odoo中特定用户组的Many2one字段分配默认值
Assign default value to a Many2one field for specific user group in odoo
我正在通过以下代码将 default value
分配给 account.invoice.line
中的 analytic distribution
字段
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,
}
但现在我想为特定用户组设置默认值。我想为一组设置一个值,为另一组设置另一个值。意味着我想为不同的用户设置两个不同的默认值。
有人请给我一些想法。我会非常感激...
最简单的方法是使用 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
以此类推。
我正在通过以下代码将 default value
分配给 account.invoice.line
中的 analytic distribution
字段
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,
}
但现在我想为特定用户组设置默认值。我想为一组设置一个值,为另一组设置另一个值。意味着我想为不同的用户设置两个不同的默认值。 有人请给我一些想法。我会非常感激...
最简单的方法是使用 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
以此类推。