2013-03-16 1 views
1

Я создал имя поля «чтобы возможности»: - модуль: - hr.applicant тип поля: - many2many объектные отношения: - crm.leadОдин модуль использовать поле для другого модуля в OpenERP

и Я использовал в модуле crm.lead.

Теперь я хочу использовать это поле в разделе «hr.recruitment». , но я пробовал много способов, но не успел. пожалуйста скажи мне. как можно использовать это поле в другом модуле, например, crm.lead до hr.recruitment

Благодарю вас за ваше время.

этот код я использовал: -

'sale_o_ids' : fields.related('job_id', 'x_link_to_jobposition', 
            readonly=True, 
            relation='crm.lead', 
            string='Opportunity Name'), 
+0

Можете ли вы предоставить дополнительную информацию? – user1576199

+0

Вы добавляете это поле в hr.applicant, и одно и то же поле хотите использовать в hr.recruitment или в том же новом поле, которое хотите добавить в hr.recruitment? – user1576199

+0

спасибо u. Я хочу добавить это поле в hr.applicant, и это же поле хотело бы использовать в hr.recruitment. поэтому всякий раз, когда это поле будет обновляться в hr.applicant, я могу увидеть это значение в hr.recruitment. В этом поле будет создано только одно. но используется в двух других модулях. спасибо, пожалуйста, предложите мне – user2160008

ответ

0

Вот пример:

из many2many

class hr_job(osv.osv): 
    _inherit = 'hr.job' 
    _columns = { 
     'sale_ids': fields.many2many('sale.order', 'hr_job_sale_order_rel', 'job_id', 'sale_id', 'Sale order'), 
    } 

hr_job() 

Здесь создали many2many поле sale.order

Теперь я хотите использовать поле hr.job в hr.employee.

class hr_employee(osv.osv): 
    _inherit = "hr.employee" 
    def _get_sale_order(self, cr, uid, ids, field_name, arg, context=None): 
     if context is None: 
      context = {} 
     result = {} 
     list_o = [] 
     for order in self.browse(cr, uid, ids, context=context): 
      for i in order.job_id.sale_ids: 
       list_o.append(i.id) 
     result[order.id] = list_o 
     return result 
_columns = { 
    'sale_order_ids': fields.function(_get_sale_order, type='many2many', relation="sale.order", string="Sale Orders"), 
} 

hr_employee() 

Итак, когда вы обновляете в поле many2many hr.job то его обновленное значение показать в объекте hr.employee, когда в задании выберите эту работу

Другой метод вы можете использовать связанные

'sale_o_ids' : fields.related('job_id', 'sale_ids', 
             type='many2many', 
             readonly=True, 
             relation='sale.order', 
             string='Available Sale Order'), 

Надеюсь, что вам это ясно

+0

очень спасибо. Я использовал ваш второй метод выбора. Но я получил ошибку: - KeyError: «Поле« job_id »не существует в объекте« browse_record (hr.job, 6) ». Я пишу свой код. PLZ один раз проверить поблагодарить u за ваше время. – user2160008

+0

привет, мой второй код - всего лишь пример, чтобы объяснить вам, как работает второй код, я добавил поле sale_o_ids в hr.employee, поэтому job_id - многое одно из hr.job-поля в hr.employee. Для вашего кода у вас есть many2many поле hr.applicant, поэтому у вас есть одно многое поле в hr.recruitment, например ** 'invite_id': fields.many2one ('hr.applicant', 'Applicant') ** то соответствующее поле вы можете создайте как: ** 'sale_o_ids': fields.related ('invite_id', 'crm_lead_ids', type = 'many2many', readonly = True, отношение = 'crm.lead', string = 'Crm Leads'), ** – user1576199

+0

здесь ** crm_lead_ids ** в many2many поля выходы в hr.applicant надеюсь, что это ясно для вас сейчас !!! – user1576199