我正在尝试在“机会”中使用“工作职位”的某些字段,我们可以将其视为合并字段。但我无法完成这项任务。我对Python语言一无所知。
我创建了一个用户定义的字段,并通过开发人员选项的XML编码在机会中使用它。我知道这很容易,因为用户定义的字段具有“crm.lead”命名模块,它在机会中是相同的。
但是现在当我想在“hr.job”中使用这个字段时,它会给我错误“找不到字段”。我知道这个字段不在当前模块中,它是“crm.lead”而不是“hr.job”的一部分。
是否可以在另一个模块中使用一个模块字段?
答案 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>
不要忘记添加依赖项。