OpenERP many2many字段 - python

时间:2013-09-09 17:10:48

标签: python openerp

我有一个表:Employees,它只包含字段'name'和'login'(它与表用户相关联)

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()

示例:

'John' - > 'John@gmail.com'

'玛丽莲' - > 'marilyn@outlook.com'

然后我有了表:Tasks,其中包含字段'name','description'和'employees_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; marilyn@outlook.com'

'播放' - > '玩legos' - > 'john@gmail.com'

但我不知道该怎么说“???”..谢谢。

2 个答案:

答案 0 :(得分:3)

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')
     }

希望这个帮助

答案 1 :(得分:0)

你必须添加第三个Field Like: -

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

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

的表

只需循环

即可轻松检索这些值

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