【问题标题】:Got "Invalid XML for View Architecture" error when trying to install a custom module in Openerp 7.0尝试在 Openerp 7.0 中安装自定义模块时出现“视图架构的 XML 无效”错误
【发布时间】:2015-10-17 02:27:54
【问题描述】:

当我尝试安装自定义模块时,出现如下错误:

ValidateError
Error occurred while validating the field(s) arch: Invalid XML for View Architecture!

这是我的模块: 初始化.py

import daily_transaction

openerp.py

{
    'name': 'Daily Transaction Manager',
    'version': '1.0',
    'category': 'manager',
    'description': """
This module will manage daily transaction.
==========================================
    """,
'author': 'Tarun',
'depends': [],
'data': ['daily_transaction_view.xml'],
'demo': [],
'installable': True,
'auto_install': False,

}

daily_transaction.py

from openerp.osv import fields, osv

class daily_transaction(osv.osv):
_name = "daily.transaction"
_description = "Daily Transaction"

_columns = {
    'subject': fields.char('Subject',required=True,size=128),
    'date': fields.date('Date',required=True),
    'note': fields.text('Notes'),
    'amount': fields.float('Amount',required=True),
    'type': fields.selection([
        ('transport','Transport'),
        ('household','Household'),
        ('personal','Personal'),
        ],'Type',required=True),
}
daily_transaction()

daily_transaction_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
    <!-- Daily Transaction List View-->
    <record id="view_daily_transaction_tree" model="ir.ui.view">
        <field name="name">daily.transaction.tree</field>
        <field name="model">daily.transaction</field>
        <field name="arch" type="xml">
            <tree string="Daily Transaction">
                <field name="name"/>
                <field name="date"/>
                <field name="type"/>
                <field name="amount"/>
            </tree>
        </field>
    </record>
    <!-- Daily Transaction Form View-->
    <record id="view_daily_transaction_form" model="ir.ui.view">
        <field name="name">daily.transaction.form.view</field>
        <field name="model">daily.transaction</field>
        <field name="arch" type="xml">
            <form string="Daily Transaction" version="7.0">
                <group>
                    <field name="name"/>
                    <field name="date"/>
                    <field name="type"/>
                    <field name="amount"/>
                    <field name="note"/>
                </group>
            </form>
        </field>
    </record>
    <record id="action_daily_transaction" model="ir.actions.act_window">
        <field name="name">Daily Transaction</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">daily.transaction</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
        <field name="search_view_id" eval="False"/>
        <field name="context">{}</field>
        <field name="help">Create new daily transaction here.</field>
    </record>
    <!-- Main Menu -->
    <menuitem name="Daily Transaction" id="base.daily_transaction_root" sequence="60"/>
    <!-- Sub Menu -->
    <menuitem id="menu_daily_transaction_root" name="Daily Transaction" parent="base.daily_transaction_root" sequence="1"/>
    <!-- Action -->
    <menuitem action="action_daily_transaction" id="menu_action_daily_transaction" parent="menu_daily_transaction_root" sequence="20"/>
</data>
</openerp>

这是日志错误:

2015-07-27 01:30:51,405 976 信息 odoo openerp.modules.module: 模块 daily_transaction:创建或更新数据库表 2015-07-27 01:30:51,431 976 信息 odoo openerp.modules.loading: 模块 daily_transaction:加载daily_transaction_view.xml 2015-07-27 01:30:51,446 976 错误 odoo openerp.osv.orm:找不到字段“名称” 在构成对象模型视图的以下视图部分中 'daily.transaction': * daily.transaction.tree

要么你错误地自定义了这个视图,要么是某些模块带来了 这些视图与您当前的数据模型不兼容 2015-07-27 01:30:51,447 976 错误 odoo openerp.addons.base.ir.ir_ui_view: 不能 模型的渲染视图:daily.transaction Traceback(最近调用 最后):文件“C:\ OpenERP 7.0-20131109-002558\Server\server\openerp\addons\base\ir\ir_ui_view.py", 第 126 行,在 _check_render_view 文件“C:\OpenERP 7.0-20131109-002558\Server\server.\openerp\osv\orm.py”,第 2264 行,在 fields_view_get 文件“C:\OpenERP 7.0-20131109-002558\Server\server.\openerp\osv\orm.py",第 1941 行,在 __view_look_dom_arch except_orm: ('View error', u"Can't find field 'name' in the following view parts composition the对象模型视图 'daily.transaction':\n * daily.transaction.tree\n\n你错了 定制了这个视图,或者一些模块没有带来这些视图 与您当前的数据模型兼容”)2015-07-27 01:30:51,461 976 错误odoo openerp.tools.convert:解析错误 file:///C:/OpenERP%207.0-20131109-002558/Server/server/openerp/addons/daily_transaction/daily_transaction_view.xml:5:

<record id="view_daily_transaction_tree" model="ir.ui.view">
        <field name="name">daily.transaction.tree</field>
        <field name="model">daily.transaction</field>
        <field name="arch" type="xml">
            <tree string="Daily Transaction">
                <field name="name"/>
                <field name="date"/>
                <field name="type"/>
                <field name="amount"/>
            </tree>
        </field>
    </record>

追溯-

Traceback (most recent call last):
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\tools\convert.py", line 847, in parse
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\tools\convert.py", line 814, in _tag_record
  File "C:\OpenERP 7.0-20131109-002558\Server\server\openerp\addons\base\ir\ir_model.py", line 967, in _update
  File "C:\OpenERP 7.0-20131109-002558\Server\server\openerp\addons\base\ir\ir_ui_view.py", line 103, in create
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\osv\orm.py", line 4478, in create
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\osv\orm.py", line 1548, in _validate
except_orm: ('ValidateError', u'Error occurred while validating the field(s) arch: Invalid XML for View Architecture!')
2015-07-27 01:30:51,463 976 ERROR odoo openerp.netsvc: ValidateError
Error occurred while validating the field(s) arch: Invalid XML for View Architecture!
Traceback (most recent call last):
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\netsvc.py", line 292, in dispatch_rpc
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\service\web_services.py", line 626, in dispatch

以上模块来自http://www.slideshare.net/TarunBehal1/odoo-open-erp-creating-a-module-37569034?related=1

我已经尝试了这里其他帖子中的几种方法(使用 xpath、在新数据库上安装模块、更新 Base 模块等),但仍然是同样的错误。

我的代码哪里做错了?

【问题讨论】:

    标签: python xml openerp-7


    【解决方案1】:

    它们在 daily_transaction.py 中没有“名称”字段,您可以添加名称字段或将 daily_transaction_view.xml 更改为其他已定义的列

    <record id="view_daily_transaction_form" model="ir.ui.view">
        <field name="name">daily.transaction.form.view</field>
        <field name="model">daily.transaction</field>
        <field name="arch" type="xml">
            <form string="Daily Transaction" version="7.0">
                <group>
                    <!-- <field name="name"/> --> <!--this was the error line -->
                    <field name="subject"/> 
                    <field name="date"/>
                    <field name="type"/>
                    <field name="amount"/>
                    <field name="note"/>
                </group>
            </form>
        </field>
    </record>
    

    【讨论】:

      【解决方案2】:

      daily_transaction.py

      from openerp.osv import fields, osv
      
      class daily_transaction(osv.osv):
      _name = "daily.transaction"
      _description = "Daily Transaction"
      
      _columns = {
          'name': fields.char('Name',required=True),
          'subject': fields.char('Subject',required=True,size=128),
          'date': fields.date('Date',required=True),
          'note': fields.text('Notes'),
          'amount': fields.float('Amount',required=True),
          'type': fields.selection([
              ('transport','Transport'),
              ('household','Household'),
              ('personal','Personal'),
              ],'Type',required=True),
      }
      daily_transaction()
      

      daily_transaction.py 文件中添加“名称”字段。

      【讨论】:

      • 感谢您的回答,非常感谢。
      • @KenKenta 我注意到您在 xml 视图中错过了“主题”字段。
      • 是的。我将 daily_transaction.py 中的主题更改为 name,一切正常。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      相关资源
      最近更新 更多