2015-05-06 52 views
0

我想創建與新數據模型關聯的新表單視圖,我創建了一個新菜單項「menu1」一個子菜單「菜單」,然後,我想自定義操作視圖。這是我的代碼:odoo:創建新表單視圖時出錯:字段「arch」未能約束:無效視圖定義

我的XML文件:

我的數據模型:

from openerp.osv import fields, osv 

class hr_cutomization(osv.osv): 

_inherit = "hr.employee" 

_columns = { 
    'new_field_ID': fields.char('new filed ID',size=11) 
} 

_default={ 
    'new_field_ID':0 
} 

hr_cutomization() 

class hr_newmodel(osv.osv): 

_name = "hr.newmodel" 

_columns = { 
    'field1': fields.char('new filed1',size=11), 
    'field2': fields.char('new filed2',size=11) 
} 

_default={ 
    'field1':0 
} 

hr_newmodel() 

當我更新我的模塊,我得到這個錯誤:

ParseError: "ValidateError Field(s) arch failed against a constraint: Invalid view definition Error details: Element '

我的代碼中有什麼問題?

回答

0

只需更新視圖操作在XML文件中有些人認爲這樣的

<record id="new_action" model="ir.actions.act_window"> 
     <field name="name">New</field> 
     <field name="type">ir.actions.act_window</field> 
     <field name="res_model">hr.newmodel</field> 
     <field name="view_type">form</field> 
     <field name="view_mode">form,tree</field> 
     <field name="view_id" ref="view_new_form"/> 
    </record> 

只需更新您的PY文件

from openerp.osv import fields, osv 

class hr_cutomization(osv.osv): 

_inherit = "hr.employee" 

_columns = { 
    'new_field_ID': fields.char('new filed ID',size=11) 
} 

_default={ 
    'new_field_ID':'0' 
} 

hr_cutomization() 

class hr_newmodel(osv.osv): 

_name = "hr.newmodel" 

_columns = { 
    'field1': fields.char('new filed1',size=11), 
    'field2': fields.char('new filed2',size=11) 
} 

_default={ 
    'field1':'0' 
} 

hr_newmodel() 

在此的.py你是指派爲char場,但你正在使用_defaults作爲0(如整數) 您必須將它作爲字符傳遞,而不是_default屬性中的整數。

和正在創建的OpenERP中的7.0模塊,則新的形式屬性添加爲版本=你表「7.0」視圖的標籤。 如果它在odoo 8.0中,則不需要這樣做。

0

我得到了同樣的錯誤,在我的情況下,這是因爲我的.py文件中有一個錯誤的縮進。嘗試做壓痕以正確的方式,這樣的事情:

from openerp.osv import fields, osv 

class hr_cutomization(osv.osv): 

    _inherit = "hr.employee" 

    _columns = { 
     'new_field_ID': fields.char('new filed ID',size=11) 
    } 

    _default={ 
     'new_field_ID':'0' 
    } 

    hr_cutomization() 

class hr_newmodel(osv.osv): 

    _name = "hr.newmodel" 

    _columns = { 
     'field1': fields.char('new filed1',size=11), 
     'field2': fields.char('new filed2',size=11) 
    } 

    _default={ 
     'field1':'0' 
    } 

    hr_newmodel() 

我認爲這種方式可以工作