0

我是 OpenERP 新手。我开发了一个新模块以安装在 ubuntu12.04 和 eclipse juno 上的 OpenERP v7 中,但出现以下错误。

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

谁能帮我...

以下是我的所有文件。

_初始化_.py

import mymodule

__openerp__.py

{
    'name': 'mymodule',
    'version': '1.0',
    'category': 'My own Module',
    'description': """
This is customised mymodule
""",
    'author': 'SANTOSH',
    'maintainer': 'SANTOSH',
    'images' : ['images/icon.jpg'],
    'depends': ['base','web'],
    'init_xml' : ['mymodule_menu.xml'],
    'data': [
        'mymodule_menu.xml',

    ],
    'demo': [
        'mymodule_menu.xml',
    ],
    'test': [
        'mymodule_menu.xml',
    ],

    'installable': True,
    'auto_install': False,
}

我的模块.py

from openerp.osv import fields, osv

class mymodule_test(osv.osv):
    _name = "mymodule.test"
    _column = {'name':fields.char('Name',size=256, Required = True ),
               'company':fields.char('Company', size = 256, Required = True),
               }

mymodule_test()

mymodule_menu.xml

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


        <record model="ir.ui.view" id="mymodule.test_view_form">
            <field name="name">Mymodule</field>
            <field name="model">mymodule.test</field>
            <field name="arch" type="xml">
                <form string="Mymodule" version="7.0">
                    <field name="name"/>
                    <field name="company"/>
                </form>
            </field>
        </record>


        <record id="action_mymodule" model="ir.actions.act_window">
            <field name="name">mymodule</field>
            <field name="res_model">mymodule.test</field>
            <field name="view_type">form</field>
            <field name="view_mode">form,tree</field>
        </record>
        <menuitem id="section_main_menu" name="Mymodule" />
        <menuitem id="menuitem_id" name="MymoduleList" parent="section_main_menu" action="action_mymodule" />
    </data>
</openerp>
4

3 回答 3

2

您的代码、语法和逻辑中存在许多错误。

  1. 为什么你在init,data,demo和test中写'mymodule_menu.xml'这个视图,在7.0版init中用data = []替换,并且在init中只包括那些将在启动时加载的文件,demo用于demo数据,并测试测试文件,如 yml

  2. _column 使用你错过的 _columns (s)

  3. 在菜单创建中使用三层,第一个超级父级,父级和菜单子级,否则将无法使用。

获得无效的 xml 错误是因为你错过了 2. 点 _cloumn 而不是 _columns

希望这有帮助

在去开发之前首先阅读 doc.openerp.com 中的 openerp文档

于 2013-08-27T05:08:36.007 回答
0

这是您的工作模块。请回复以进行澄清。

_初始化_.py

import mymodule

_ openerp _.py

{
'name': 'mymodule',
'version': '1.0',
'category': 'Tools', # There's a procedure to add your own category  
'description': """
This is customised mymodule
""",
'author': 'Vivek',
'depends': [
    'base'
],
'data': ['mymodule_menu.xml'],
'demo': [],
'installable': True,
'auto_install': False
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

mymodule_menu.xml

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

    <record model="ir.ui.view" id=" test_view_form">
        <field name="name">Mymodule</field>
        <field name="model">mymodule.test</field>
        <field name="arch" type="xml">
            <form string="Mymodule" version="7.0">
                <field name="name"/>
                <field name="company"/>
            </form>
        </field>
    </record>


 <!-- Module Tree View -->
    <record id="view_mymodule_tree" model="ir.ui.view">
        <field name="name">My Module</field>
        <field name="model">mymodule.test</field>
        <field name="arch" type="xml">
            <tree string="My Module">
                <field name="name" string="Name" />
                <field name="company" string="Company" />
            </tree>
        </field>
    </record>

    <record id="action_mymodule" model="ir.actions.act_window">
        <field name="name">mymodule</field>
      <field name="type">ir.actions.act_window</field>
        <field name="res_model">mymodule.test</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form </field>
    </record>

    <!-- Top Menu Item -->
    <menuitem name="My Module" id="menu_mymodule" />

    <!-- Left-side menu: Guests -->
    <menuitem name="My Module List" parent="menu_mymodule" id="mymodule_label" />

    <!-- Action Menu -->
    <menuitem name="Actual Module List" parent="mymodule_label" id="mymodule_label_actual"
        action="action_mymodule" />
</data>
</openerp>

我的模块.py

from openerp.osv import fields, osv

class mymodule_test(osv.osv):
_name = "mymodule.test"
_columns = {'name':fields.char('Name',size=256, Required = True ),
           'company':fields.char('Company', size = 256, Required = True),
           }

mymodule_test()

你错过了很多东西。请比较您的代码和此代码以查看您错过的地方。

这是我添加新类别的笔记

如何为已开发的模块添加新类别?模块类别列表从文件 server/openerp/addons/base/module/module_data.xml 加载。

您还可以看到它查询 ir_module_category Postgres 表。

这是我发现的:

序列名称

=== =================================

1 客户关系管理

2 销售管理

3 项目管理

4 知识管理

5 仓库管理

6 制造

7 发票和付款

8 会计与金融

9 采购管理

10 人力资源

11 个额外工具

12 营销

13 销售点

14 高级报告

而且由于类别 id 是一个 many2one 字段,不,一个模块不能有多个类别。选择最具代表性的一个(大多数菜单选项会在哪个顶部菜单下?)。

添加新类别

module_data.xml

    <record model="ir.module.category" id="module_category_custom_modules">
        <field name="name">Custom Modules</field>
        <field name="sequence">16</field>
    </record>
于 2013-08-27T06:48:23.077 回答
0

我有同样的错误信息,但我的问题很简单,写一个“openacademy”模块,我写过openacademy.py

class openacademy_course(osv.osv):
    _name = 'course'
    …

当我应该写:

class openacademy_course(osv.osv):
    _name = 'openacademy.course'

所以它可能对你的具体情况没有帮助,但也许其他人会发现你的问题有同样的问题。

于 2014-01-21T16:14:45.877 回答