一个模块字段用于其他模块

时间:2012-11-27 07:16:43

标签: openerp

我正在尝试在“机会”中使用“工作职位”的某些字段,我们可以将其视为合并字段。但我无法完成这项任务。我对Python语言一无所知。

我创建了一个用户定义的字段,并通过开发人员选项的XML编码在机会中使用它。我知道这很容易,因为用户定义的字段具有“crm.lead”命名模块,它在机会中是相同的。

但是现在当我想在“hr.job”中使用这个字段时,它会给我错误“找不到字段”。我知道这个字段不在当前模块中,它是“crm.lead”而不是“hr.job”的一部分。

是否可以在另一个模块中使用一个模块字段?

2 个答案:

答案 0 :(得分:1)

是的,你可以这样做。首先,您必须为其创建一个对象,然后浏览记录并获取所需字段的值。
例如创建一个方法,然后浏览crm.lead记录:

crm_obj = self.pool.get('crm.lead')
crm_brw = crm_obj.browse(cr, uid, crm_rec_id, context=context)
print "my field value::  ", crm_brw.your_field

这里,“crm_rec_id”是crm.lead对象记录的id

插件中有很多例子。

答案 1 :(得分:1)

是的,你可以通过_inherits完成。 例如。 hr模块中的hr_job。

class hr_job(osv.osv):
    _name = "hr.job"
    _description = "job position"
        _columns = {
        'name': fields.char('job name', size=64)

      }
crm模块中的

crm_lead。

class crm_lead(osv.osv):
    _name = "crm.lead"
   _inherits = {'hr.job': 'job_id'}
    _description = "Lead/Opportunity"
        _columns = {
        'partner_id': fields.many2one('res.partner', 'Partner')

      }

在crm的xml文件中创建表单视图。

<record id="crm_lead_form" model="ir.ui.view">
        <field name="name">crm.lead</field>
        <field name="model">crm.lead</field>
        <field name="arch" type="xml">
            <form>
             <field name="name"/> # job name from hr_job
             <field name="partner_id"/> # partner_id from crm.lead
           </form>
       </field>
 </record>

不要忘记添加依赖项。