0

我有表:Employees,其中仅包含字段“名称”和“登录”(它与表用户相关联)

class Employees(osv.osv):
    _name = 'Employees.Employees'
    _columns = {
         'the_name':fields.char('Name:', size = 50),
         'user_id': fields.many2one('res.users', 'User:', select = True),
     }
Employees()

例子:

“约翰”->“约翰@gmail.com”

“玛丽莲”->“玛丽莲@outlook.com”

然后我有表:Tasks,其中包含字段“名称”、“描述”和“员工 ID”。当创建一个任务时,它可能包含多个员工来完成同一个任务,这就是我选择“many2many”的原因,因为我可以选择多个员工。所以,我尝试了以下方法:

class tasks(osv.osv):
    _name = 'tasks.tasks'
    _columns = {
          'the_name':fields.char('Name', size = 50),
          'description':fields.text('Description'),
          'employees_id':fields.many2many('Employees.Employees', 'Employees', '???', 'user_id', 'All Employees')
     }
tasks()

例子:

'携带沙子' -> '从海滩上携带整个沙子' -> 'john@gmail.com; 玛丽莲@outlook.com'

“玩”->“玩乐高”->“john@gmail.com”

但我不知道该放什么“???”..谢谢。

4

2 回答 2

4

fields.many2many('other.object.name', '关系对象', 'actual.object.id', 'other.object.id', '字段名')

例子

'category_ids':
   fields.many2many(
    'res.partner.category',
    'res_partner_category_rel',
    'partner_id',
    'category_id',
    'Categories'),


 'employees_id':fields.many2many('employee.employee', 'employee_user_rel', 'user_id', 'employee_id', 'All Employees')
     }

希望这有帮助

于 2013-09-10T06:01:23.103 回答
0

您必须添加第三个字段,例如:-

'employees_id': fields.many2many('Employees.Employees',
                                 'tasks_employees_rel',
                                 'employee_id',
                                 'task_id',
                                 'All Employees')

对于员工...它将创建另一个包含字段的表'employee_id', 'task_id',

您可以通过循环来轻松检索这些值

task_obj.employees_id:它将返回与下划线ta关联的员工列表

于 2013-09-15T06:15:52.027 回答