2016-07-20 3 views
0

Я задаю поле default value к analytic distribution в account.invoice.line по ниже кодомПрисвоить поле Many2one для конкретной группы пользователей в odoo

 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

Самый простой способ приблизиться к использованию метода 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 

И так далее и так далее.

+0

Сэр это дает мне эту ошибку 'AttributeError: 'account.invoice.line' объект не имеет атрибута 'env'' –

+0

спасибо *** ariusz Mizgier *** Мне нужно' self.pool [' res.users ' ] .has_group (cr, uid, 'base.group1') ' –

+0

SIr работает хорошо для' account.invoice.line', но ничего не делает для 'account.move.line', можете ли вы объяснить, что происходит. .. ??? –

Смежные вопросы