2013-09-09 4 views
0

У меня есть таблица: Служащие, который содержит только поле «имя» и «входа» (это связано с пользователями таблицы)OpenERP many2many поля - питон

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

Пример:

«Джон '-> '' [email protected]

'Мэрилин' -> '[email protected]'

Тогда у меня есть таблица: задачи, которая содержит поле 'имя', 'описание', и '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() 

Пример:

'Carry песок' -> 'Выполнить весь песок с пляжа' -> «[email protected]; [email protected]»

'Play' -> 'Play с Лего' -> '[email protected]'

Но я не знаю, что надеть "???" .. Благодарю.

ответ

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

Надежда эта помощь

+0

Отлично, это решило мою проблему и –

0

Вы должны добавить третье поле, как: -

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

для Работника ... это создаст еще одну таблицу, содержащую поля 'employee_id', 'task_id',

вы можете легко получить эти значения, просто зацикливание на это, что является

task_obj.employees_id: он будет возвращать список сотрудников, связанных с underline ta