2013-05-18 3 views
3

В настоящее время я играю с openERP 7. Я занимаюсь тестированием, и я создаю свое первое дополнение. Я хочу добавить на каждом продукте кнопку «синхронизировать» на вкладке с именем «специальный», созданной другим надстройкой (которая отлично работает). Моя кнопка отображается успешно, но когда я нажимаю на него я получаю следующее сообщение об ошибке: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

Благодаря предложению Gurney Alex я смог исправить эту проблему.

Мне нужно было иметь как _имя, так и _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

изменить _name на _inherit в определении класса product_product.

+0

Привет, спасибо, но это не работает. Я заменил атрибут _name на _inherit, но я все еще имею ту же ошибку. – Ajite

+0

Вы правы, оба необходимы. –

Смежные вопросы