一个模块字段用于openerp中的其他模块

时间:2013-03-16 13:45:21

标签: openerp

我创建了一个字段名称“机会链接”: - 模块: - hr.applicant 字段类型: - many2many 对象关系: - crm.lead

我在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'),

1 个答案:

答案 0 :(得分:0)

以下是示例:

of 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.employee中使用hr.job字段。

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

因此,当您在hr.job many2many字段中进行更新时,在作业中选择此作业时,其更新后的值会显示在hr.employee对象中

您可以使用的另一种方法

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

希望你明白这件事