2013-07-12 15 views
1

嗨,我一直在開發一個定製的openerp模塊。我在我的領域創建了一個按鈕,並且我還宣佈了它的一個功能。但我得到一個錯誤「'my_form'對象沒有屬性'add_field'」?在開發openerp模塊時如何解決'object has no attribute'錯誤?

這裏是myform_view.xml

<?xml version="1.0" encoding="UTF-8"?> 
<openerp> 
    <data> 

     <record model="ir.ui.view" id="from_view_form"> 
      <field name="name">form.view.form</field> 
      <field name="model">my.form</field> 
      <field name="arch" type="xml"> 
       <form string="Form" version="7.0"> 
        <group> 
         <field name="name" /> 
         <field name="project" /> 
         <button name="add_field" string="Add Field" type="object" /> 
        </group> 
       </form> 
      </field> 
     </record> 

     <record model="ir.ui.view" id="from_view_tree"> 
      <field name="name">form.view.tree</field> 
      <field name="model">my.form</field> 
      <field name="arch" type="xml"> 
       <tree string="Form"> 
        <field name="name" /> 
       </tree> 
      </field> 
     </record>  

     <record model='ir.actions.act_window' id='add_field'> 
      <field name="name">Form</field> 
      <field name="res_model">my.form2</field> 
      <field name="view_type">form</field> 
      <field name="view_mode">form</field> 
      <field name="context">{}</field> 
      <field name="help" type="html"> 
       <p class="oe_view_nocontent_create"> 
        Click to create a new record. 
       </p> 
       <p>This is a test class developed to learn Openerp.</p> 
      </field> 
     </record> 













     <record model='ir.actions.act_window' id='form_view_action'> 
      <field name="name">Form</field> 
      <field name="res_model">my.form</field> 
      <field name="view_type">form</field> 
      <field name="view_mode">tree,form</field> 
      <field name="context">{}</field> 
      <field name="help" type="html"> 
       <p class="oe_view_nocontent_create"> 
        Click to create a new record. 
       </p> 
       <p>This is a test class developed to learn Openerp.</p> 
      </field> 
     </record> 

     <menuitem id="myform_ID" name="myforms" /> 

     <menuitem id="myform_menu_ID" name="myform" parent="myform_ID" /> 

     <menuitem id="myform_menu2_ID" name="myform" parent="myform_menu_ID" action='form_view_action' /> 

    </data> 
</openerp> 

這裏是myform.py

from osv import fields, osv 
import time 


class my_form(osv.osv): 

    _name = "my.form" 
    _description = 'Formview Module' 
    _columns = { 
     'name': fields.char('Name', size=64), 
     'project': fields.char('Project', size=64), 
     'image': fields.binary('Image'), 
     'file':fields.binary('attach file') 
    } 



class my_form2(osv.osv): 

    _name="my.form2" 
    _description="new form" 
    _columns={ 
       'add':fields.char('Address',size=64) 
       } 
+0

嗨,在這裏提供整個異常跟蹤。我看不到錯誤在哪裏 – theAlse

+0

我已經提到了上面的錯誤。當我點擊按鈕時出現錯誤 –

+0

這是你第一次問一個問題!提供整個堆棧跟蹤,你給我們的是''my_form'對象沒有屬性'add_field'「。但是在哪一行? – theAlse

回答

0

肯定還有add_field方法在你的對象像 即 類my_form(osv.osv):

_name = "my.form" 
    _description = 'Formview Module' 
    _columns = { 
     'name': fields.char('Name', size=64), 
     'project': fields.char('Project', size=64), 
     'image': fields.binary('Image'), 
     'file':fields.binary('attach file') 
    } 

    def add_field(self, cr, uid, ids, context={}): 
     #YOUR CODE 
     return True 
` 
+0

我可以通過單擊按鈕來調用記錄操作窗口。如果是,那我該怎麼做? –

+0

有兩種調用動作的方式。 1.如果Action是在XML文件中創建的,只需做

+0

這裏小挑剔,但你永遠不應該編碼def add_field(...,context = {}):或者你可以運行默認參數值。請記住,在處理def時,只會對默認值進行一次評估。你應該默認爲不可變的值:def add_field(...,context = None): –

相關問題