KeyError每次都升级Odoo模块

时间:2015-06-24 12:41:27

标签: odoo

我是Odoo的新手,我开发了一个简单的模块,它将为现有视图添加一些字段。首先,我将它安装到Odoo,它工作正常。然后我编辑一些代码,喜欢在我的模块中添加新的更多字段。现在,当我使用一些新代码升级我的模块时,Odoo显示错误:KeyError" bla bla"。 但是,如果我将我的新模块安装到另一台机器上,它可以正常工作。 我错过了什么?我该如何解决呢? 抱歉,我的英语不好,我是越南人。

更新我的代码: my_model.py文件:

from openerp.osv import fields, osv

class ij_project_form(osv.osv):
_name = 'project.project'
_inherit = "project.project"

_columns = {
    'ij_project_form_id': fields.integer('An integer field', size=11),
    'ij_project_form_des': fields.text('A text field')
}

_defaults ={
    'ij_project_form_id': 0
}

ij_project_form()

my_view.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
    <record model="ir.ui.view" id="ij_project_form">
        <field name="name">project.project.form</field>
        <field name="model">project.project</field>
        <field name="inherit_id" ref="project.edit_project" />
        <field name="arch" type="xml">
            <xpath expr="//field[@name='partner_id']" position="after">
                <newline/>
                <field name="ij_project_form_id" />
            </xpath>

            <xpath expr='//page[@string="Project Stages"]' position="after">
                <group string="Injection tab" name="sample">
                    <field name="ij_project_form_des" />
                </group>
            </xpath>
        </field>
    </record>
  </data>
</openerp>

6 个答案:

答案 0 :(得分:1)

这里你继承了project.project模型,这个模型在项目模块中,所以你首先在v7,v8 openerp .py中设置依赖关系,如果你在v9或v10上工作比清单 .py

  

<强>&#39;取决于&#39;:[&#39;项目&#39;]

答案 1 :(得分:0)

1)在'odoo&#39; _name&#39;属性在后端(即数据库中)创建一个新表。因此,当您想要向现有模型添加字段时(例如此处&#39; project.project&#39;),无需使用_name。 &#34; _inherit&#34;像上面就足够了。

使用上面的代码,它将尝试创建另一个表project_project(它是odoo的基表,已经在数据库中创建)。所以,删除代码中的_name并运行。

我们可以将_name与_inherit一起使用,但尝试为&#39; _name&#39;添加不同的名称。属性。所以这场冲突不会提出来。

答案 2 :(得分:0)

您应该更新__openerp__.py文件,并确保正确放置depends部分。

在这里,您继承了project.project模块,因此您应该在__openerp__.py中添加它:

  

&#39;依赖&#39;:[&#39;项目&#39;]

答案 3 :(得分:0)

这可能是因为您继承了项目模块。因此,在模块的清单文件中,您必须依赖于项目模块 例如: 在 openerp .py文件中添加以下代码

'取决于':[    '项目', ],

干杯!

答案 4 :(得分:0)

对于odoo中的每个新手都会发生这种情况,我也遇到了这个“KeyError”。好吧,我通过创建新的数据库并再次安装所有需要的模块来更改数据库。它对我有用。

关于你的英语,In Communication的话并不重要,只需要理解。

答案 5 :(得分:0)

嗨,我也是陌生人 我遇到了相同的问题KeyError:“某些旧模型” 原因与其他答案一样,由于数据库中的数据过旧

我通过使用此命令从db中删除记录来解决了该问题

DELETE FROM ir_model WHERE model = 'yourmodule.oldmodelname';