добавить пользователя в групповой доступ - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу добавить пользователя в группу, которая существует в res.groups Но я не знаю, почему он не добавляет в эту группу Это мой код Python

class access_teacher1(models.Model):

 _inherit = 'res.users'

 def create(self, cr, uid, vals, context=None):

    new_id = super(access_teacher1, self).create(cr, uid, vals, context=context)
    if self.browse(cr, uid, new_id, context=context).is_teacher:
            self.write(cr, uid, [new_id], {'password': vals['login']}, context=context)

    res_groups = self.pool['res.groups']
    group_id = self.pool['ir.model.data'].get_object(cr, uid,'pronote','proschool_teacher')
    res_groups.write(cr, uid, [group_id], {'users': [new_id]}, context=context)
    return new_id

проблема остановлена ​​на {'users': [new_id]} как это исправить

1 Ответ

0 голосов
/ 14 сентября 2018

Попробуйте это:

res_groups.write(cr, uid, [group_id.id], {'users': [(4,new_id)]}, context=context)

Причина в том, что Odoo использует специальный формат команд для записи значений в поля One2many и Many2many

Подробнее об этом можно прочитать по адресу:

https://github.com/odoo/odoo/blob/9e8f70e4849b0eeaca8b5cf51372ecfa23dc561b/openerp/models.py#L3724-L3761

...