OpenERP模块xml ValidateError

Ema*_*ban 8 python xml module openerp

我正在学习OpenERP开发,我遇到了一个问题,我认为应该是显而易见的.

我做了一个非常简单的模块,但我无法安装它.它一直在说

验证字段arch时发生ValidateError错误:View Architecture的XML无效!

这是我的模块:

init .py

import testmod
__openerp__.py

{
'name': "Test Module",
'description': "Basic example of a (future) web module",
'category': 'Hidden',
'depends': ['base'],
'data': [
    'test_view.xml',
],
'installable': True,
'application': False,
'auto_install': False,
}
Run Code Online (Sandbox Code Playgroud)

testmod.py

from openerp.osv import fields, osv

class testmod_test(osv.Model):
    _name = 'testmod.test'
    _description = 'Test Model'
    _columns = {
    'test1': fields.char('Test 1', size=32, required=True, help='Test 1 help'),
    'test2': fields.float('Test 2', help='Test 2 help'),
    }

testmod_test()
Run Code Online (Sandbox Code Playgroud)

test_view.xml

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

<record id="testmod_test_form" model="ir.ui.view">
    <field name="name">testmod.test.form</field>
    <field name="model">testmod.test</field>
    <field name="arch" type="xml">
      <form string="Test" version="7.0">  
        <field name="test1" />
        <field name="test2"/>

      </form>
    </field>
</record>

<record id="testmod_test_tree" model="ir.ui.view">
  <field name="name">testmod.test.tree</field>
  <field name="model">testmod.test</field>
  <field name="arch" type="xml">
    <tree string="Test">
      <field name="test1" />
       <field name="test2"/>
    </tree>
  </field>
</record>

<record model="ir.actions.act_window" id="action_testmod_test">
  <field name="name">Test</field>
  <field name="res_model">testmod.test</field>
  <field name="view_type">form</field>
  <field name="view_mode">tree,form</field>
</record>

<menuitem 
          name="Test" 
          id="menu_testmod_test" 

          />

<menuitem 
          name="Test sub" 
          parent="menu_testmod_test"
          id="menu_testmod_test_sub" 
          />
<menuitem
        name="Sub Test"
        id="menu_subtest"
        parent="menu_testmod_test_sub"
        action="action_testmod_test"    
        />


</data>
</openerp> 
Run Code Online (Sandbox Code Playgroud)

这是完整的日志错误:

2013-09-17 19:22:19,199 1674 INFO emad92 openerp.modules.loading:加载1个模块... 2013-09-17 19:22:19,220 1674 INFO emad92 openerp.modules.loading:加载10个模块...... 2013-09-17 19:22:19,251 1674 INFO emad92 openerp.modules.loading:加载11个模块... 2013-09-17 19:22:19,252 1674 INFO emad92 openerp.modules.module:module testmod:创建或更新数据库表2013-09-17 19:22:19,255 1674 INFO emad92 openerp.modules.loading:module testmod:loading test_view.xml 2013-09-17 19:22:19,269 1674 ERROR emad92 openerp.addons.base.ir.ir_ui_view :无法呈现模型的视图:testmod.test Traceback(最近一次调用最后一次):文件"/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_ui_view.py",第126行, _check_render_view fvg = self.pool.get(view.model).fields_view_get(cr,uid,view_id = view.id,view_type = view.type,context = context)AttributeError:'NoneType'对象没有属性'fields_view_get'2013-09-17 19:22:19,276 1674 ERROR emad92 openerp.tools.convert:/ opt/modules中的解析错误-openerp/testmod/test_view.xml:5:

<record id="testmod_test_form" model="ir.ui.view">
    <field name="name">testmod.test.form</field>
    <field name="model">testmod.test</field>
    <field name="arch" type="xml">
      <form string="Test" version="7.0">  
        <field name="test1" />
        <field name="test2"/>

      </form>
    </field>
</record> 
Run Code Online (Sandbox Code Playgroud)

Traceback(最近一次调用最后一次):文件

"/usr/lib/pymodules/python2.7/openerp/tools/convert.py",第847行,在解析self._tags [rec.tag](self.cr,rec,n)文件"/ usr/lib/pymodules/python2.7/openerp/tools/convert.py",第814行,在_tag_record中id = self.pool.get('ir.model.data')._ update(cr,self.uid,rec_model,self.module ,res,rec_id或False,而不是self.isnoupdate(data_node),noupdate = self.isnoupdate(data_node),mode = self.mode,context = rec_context)文件"/usr/lib/pymodules/python2.7/openerp/addons /base/ir/ir_model.py",第964行,在_update res_id = model_obj.create(cr,uid,values,context = context)文件"/usr/lib/pymodules/python2.7/openerp/addons/base/ ir/ir_ui_view.py",第103行,在create return super(view,self).create(cr,uid,values,context)File"/ usr/lib/pymodules/python2.7/OpenERP的/ OSV/orm.py "线4472,在创建self._validate(CR,用户,[id_new],上下文)文件" /usr/lib/pymodules/python2.7/openerp/osv/orm.py "线1546,在_Validate提高except_orm( 'ValidateError', '\n'.join(error_msgs))except_orm:(' ValidateError",u'Error在验证字段(S)拱发生:无效XML的视图结构! ")2013年9月17日19:22:19278 1674 ERROR emad92 openerp.netsvc:无效XML的视图结构回溯(最近通话最后一个):!ValidateError在验证字段(S)拱出错文件"在/ usr/lib/pymodules/python2.7/openerp/netsvc.py",第292行,在dispatch_rpc结果= ExportService.getService(service_name).dispatch(method,params)文件"/usr/lib/pymodules/python2.7/openerp/服务/ web_services.py",第626行,在dispatch res = fn(db,uid,*params)文件"/usr/lib/pymodules/python2.7/openerp/osv/osv.py",第188行,在execute_kw中返回self.execute (分贝,UID,OBJ,方法,*指定参数时,**千瓦或{})文件 "/usr/lib/pymodules/python2.7/openerp/osv/osv.py",线144,在包装加注except_osv(研究所.name和inst.value)except_osv:弓( 'ValidateError',u'Error在验证字段(s时发生):无效XML的视图结构")2013年9月17日19:22:19283 1674 INFO emad92 WERKZEUG: 127.0.0.1 - - [17/Sep/2013 19:22:19]"POST/web/dataset/call_button HTTP/1.1"200 -*args,**kw或{})文件"/usr/lib/pymodules/python2.7/openerp/osv/osv.py",第144行,在包装器中引发except_osv(inst.name,inst.value)except_osv: ('ValidateError',u'Error在验证字段时发生错误:视图架构的XML无效!')2013-09-17 19:22:19,283 1674 INFO emad92 werkzeug:127.0.0.1 - - [17/Sep/2013 19:22:19]"POST/web/dataset/call_button HTTP/1.1"200 -*指定参数时,**千瓦或{})文件 "/usr/lib/pymodules/python2.7/openerp/osv/osv.py",线144,在包装加注except_osv(inst.name,inst.value)except_osv: ('ValidateError',u'Error在验证字段时发生错误:视图架构的XML无效!')2013-09-17 19:22:19,283 1674 INFO emad92 werkzeug:127.0.0.1 - - [17/Sep/2013 19:22:19]"POST/web/dataset/call_button HTTP/1.1"200 - POST/web/dataset/call_button HTTP/1.1"200 - POST/web/dataset/call_button HTTP/1.1"200 -

我在Linux平台(ubuntu 13.04)中使用OpenERP 7.0.

Sha*_*mux 2

一旦安装并重新启用数据部分并升级模块,请尝试注释掉openerp.py中的数据部分。有时 openerp 无法实际创建模型并导致错误。这可能会解决你的问题