3

我目前正在使用 openERP 7。我正在做一些测试,并且正在构建我的第一个附加组件。我想在每个产品视图上添加一个名为“特殊”的选项卡上的“同步”按钮,该按钮由另一个插件创建(效果很好)。我的按钮显示成功,但是当我单击它时,我收到以下错误:

AttributeError: 'product.product' object has no attribute 'custom_export'

如果有人可以解释我为什么会出现该错误以及如何解决它。

我的附加文件夹名称是:custom_synchronizer,里面有 4 个文件。

__init__.py

import product

__openerp.py__

{
    "name" : "Custom synchronizer",
    "version" : "0.1",
    "author" : "Ajite",
    "category" : "Product",
    "depends" : ["product"],
    "init_xml" : [],
    "demo_xml" : [],
    "update_xml" : ["product_view.xml"],
    "installable": True,
    "active": True
}

产品.py

from openerp.osv import orm, fields

class product_product(osv.osv):
        _name = 'product.product'
        _columns = {}

        def custom_export(self, cr, uid, ids, context=None):
            f = open('/home/ajite/faytung.txt','w')
            f.write('Hi there !')
            f.close()
            return True
product_product()

product_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record id="product_normal_form_view" model="ir.ui.view">
            <field name="name">product.product.form</field>
            <field name="model">product.product</field>
            <field name="inherit_id" ref="special.product_normal_form_view"/>
            <field name="arch" type="xml">
                <page name="special" position="inside">
                    <button name="custom_export" string="Export" icon="gtk-execute" type="object"/>
                </page>
            </field>
        </record>
    </data>
</openerp>
4

2 回答 2

2

在您的 product_product 类定义中将 _name 更改为 _inherit。

于 2013-05-18T17:12:43.193 回答
2

感谢 Gurney Alex 的建议,我能够解决这个问题。

我需要在我的班级中同时拥有 _name 和 _inherit 属性。

产品.py

from osv import fields, osv

class product_product(osv.osv):
    _name = 'product.product'
    _inherit = 'product.product'

    def custom_export(self, cr, uid, ids, context=None):

        return True 

product_product()
于 2013-05-19T02:29:39.137 回答