将任务分配给odoo中的多个用户

assign task to multiple users in odoo

在 odoo(来自 openERP)中我想自定义项目管理模块。

目前一个任务可以分配给一个用户。型号代码为:

class task(osv.osv):
    _name = "project.task"
    _description = "Task"

    'user_id': fields.many2one('res.users', 'Assigned to', select=True, track_visibility='onchange'),

现在想将一个任务分配给多个用户。我已经像这样修改了 user_id 字段:

'user_id': fields.many2many('res.users', 'Assigned to', select=True, track_visibility='onchange'),

但它显示了以下回溯:

Traceback (most recent call last):
  File "/home/hardik/odoo/odoo/openerp/http.py", line 537, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/hardik/odoo/odoo/openerp/http.py", line 574, in dispatch
    result = self._call_function(**self.params)
  File "/home/hardik/odoo/odoo/openerp/http.py", line 310, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/hardik/odoo/odoo/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/hardik/odoo/odoo/openerp/http.py", line 307, in checked_call
    return self.endpoint(*a, **kw)
  File "/home/hardik/odoo/odoo/openerp/http.py", line 803, in __call__
    return self.method(*args, **kw)
  File "/home/hardik/odoo/odoo/openerp/http.py", line 403, in response_wrap
    response = f(*args, **kw)
  File "/home/hardik/odoo/odoo/addons/web/controllers/main.py", line 884, in search_read
    return self.do_search_read(model, fields, offset, limit, domain, sort)
  File "/home/hardik/odoo/odoo/addons/web/controllers/main.py", line 905, in do_search_read
    request.context)
  File "/home/hardik/odoo/odoo/openerp/http.py", line 908, in proxy
    result = meth(cr, request.uid, *args, **kw)
  File "/home/hardik/odoo/odoo/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/hardik/odoo/odoo/openerp/models.py", line 5146, in search_read
    result = self.read(cr, uid, record_ids, fields, context=read_ctx)
  File "/home/hardik/odoo/odoo/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/hardik/odoo/odoo/openerp/models.py", line 3141, in read
    result = BaseModel.read(records, fields, load=load)
  File "/home/hardik/odoo/odoo/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/home/hardik/odoo/odoo/openerp/models.py", line 3176, in read
    self._read_from_database(stored, inherited)
  File "/home/hardik/odoo/odoo/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/home/hardik/odoo/odoo/openerp/models.py", line 3354, in _read_from_database
    res2 = self._columns[f].get(cr, self._model, ids, f, user, context=context, values=result)
  File "/home/hardik/odoo/odoo/openerp/osv/fields.py", line 1012, in get
    cr.execute(query, [tuple(ids),] + where_params)
  File "/home/hardik/odoo/odoo/openerp/sql_db.py", line 158, in wrapper
    return f(self, *args, **kwargs)
  File "/home/hardik/odoo/odoo/openerp/sql_db.py", line 234, in execute
    res = self._obj.execute(query, params)
ProgrammingError: syntax error at or near "to"
LINE 1: SELECT Assigned to.res_users_id, Assigned to.project_task_id...
                        ^

请指导我如何处理这个问题。提前致谢

当我们创建 many2many 类型字段时,我们必须给出关系名称 table ,其中 table 记录将存储在其中。在下面的示例中 'task_user_rel' 是关系 table.

您可以试试这个代码:

'user_ids': fields.many2many('res.users', 'task_user_rel', 'user_id', 'id', 'Assigned to', select=True, track_visibility='onchange'),

现在在 xml 侧添加新的 user_ids 字段并且 hide/invisible 存在 user_id字段。