2013-05-18 23 views
3

我目前在玩openERP 7.我正在做一些测试,并且正在构建我的第一个附加组件。 我想在每个产品视图上添加一个名为“special”的标签上的“同步”按钮,该标签是由另一个附件创建的(它非常适用)。我的按钮显示成功,但是当我点击它,我得到以下错误: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 
} 

product.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> 

回答

2

感谢格尼亚历克斯的建议,我能够解决这个问题。

我需要在我的课程中同时具有_name和_inherit属性。

product.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() 
2

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

+0

你好,谢谢你,但它无法正常工作。我用_inherit替换了_name属性,但仍然有相同的错误。 – Ajite

+0

你是对的,都需要。 –

相关问题