0

我正在尝试将 crm.lead 继承到我的自定义模块中。以下是我的代码 lead.py

from osv import osv
from osv import fields

class res_partner(osv.osv):
 _name = 
 _inherit = 'crm.lead'
 _description = "adding fields to crm.lead"
 _coloumns = {
    'nitesh': fields.char('Nitesh',size=64)
 }

Lead-view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- ========================This is Form layout===============================-->
    <record id="crm_case_form_view_leads" model="ir.ui.view">
        <field name="name">CRM - Leads Form</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_form_view_leads" />
        <field name="arch" type="xml">
            <field name="partner_name" postion="after">
                <field name="nitesh"/>
            </field>
       </field>
    </record>



<!-- ========================= Action Layout ============================= -->

    <record id="create_lead" model="ir.actions.act_window">
        <field name="name">Lead Form</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">crm.lead</field>
        <field name="view_type">form</field>
        <field name="view_mode">form</field>
        <field name="view_id" ref="crm_case_form_view_leads"/>
    </record>


       <!-- ===========================Menu Settings=========================== -->
    <menuitem name="Lead" id="menu_lis_lab"/>
        <menuitem name="Lead Info" id="sublead_menu" parent="menu_lis_lab"/>
            <menuitem name="Create Lead" id="create_lead"  parent="sublead_menu" action="create_lead"/>     
</data>
</openerp>

给出以下错误:

'You may need to add a dependency on the parent class\' module.' % (name, parent_name))
TypeError: The model "crm.lead" specifies an unexisting parent class "crm.lead"

您可能需要添加对父类模块的依赖项。

谁能告诉我我哪里出错了。在此先感谢

现在我在openerp .py中添加了依赖项

openerp .py 是

{
'name': 'Lead Information',
'version': '0.1',
'category': 'Tools',
'description': """This module is Lead information.""",
'author': 'Nitesh',
'website': '',
'depends': ['base','crm'],
'init_xml': ['customer_view.xml'],
'update_xml': [],
'demo_xml': [],
'installable': True,
'active': True,
'application': True
}

我收到了这个错误:

except_orm: ('ValidateError', u'Error occurred while validating the field(s) arch: Invalid XML for View Architecture!')
4

1 回答 1

1

如果您想从对象继承,请给它一个正确的名称。首先检查已经开发的模块的代码,看看它们是如何继承的。并知道_inherit_name的含义。

在 .py 文件中进行以下更改。

from osv import osv
from osv import fields

class crm_lead(osv.osv):
    _inherit = 'crm.lead'
    _description = "adding fields to crm.lead"
    _coloumns = {
        'nitesh': fields.char('Nitesh',size=64)
    }

就在您的 view.xml 中,您只需输入以下代码:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
    <!-- ========================This is Form layout===============================-->
    <record id="crm_case_form_view_leads_extended" model="ir.ui.view">
        <field name="name">CRM - Leads Form</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_form_view_leads" />
        <field name="arch" type="xml">
            <field name="partner_name" postion="after">
                <field name="nitesh"/>
            </field>
       </field>
    </record>

</data>
</openerp>

这样,您将在 crm.lead 表单上看到 nitesh 归档添加。

希望这能解决您的问题。

于 2014-02-03T07:02:21.710 回答