2

我在 openerp 中创建了一个新模块,现在我想为该模块提供安全性,因为我在模块文件夹中创建了一个名为“security”的文件夹,并在其中创建了一个 xml 文件和 ir.model.access.csv 文件。我的目的是我想为我的模块创建两个角色,一个是经理,另一个是用户。为此,我在 xml 文件中添加了以下代码

<record id="group_mat_mgmt_user" model="res.groups">
        <field name="name">User</field>
        <field name="category_id" ref="base.module_category_mat_mgmt"/>
        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
    </record>
    <record id="group_mat_mgmt_manager" model="res.groups">
        <field name="name">Manager</field>
        <field name="category_id" ref="base.module_category_mat_mgmt"/>
        <field name="implied_ids" eval="[(4, ref('group_mat_mgmt_user'))]"/>
        <field name="users" eval="[(4, ref('base.user_root'))]"/>
    </record>

在视图部分,我添加了这样

<menuitem name="Materials Management" id="menu_mat_mgmt_root"
        groups="group_mat_mgmt_manager,group_mat_mgmt_user"
        sequence="80"/>

然后在 csv 获得了许可,但我收到了这样的错误

文件“C:\OpenErp\openerp\openobject-server\openerp\addons\base\ir\ir_model.py”,第 850 行,在 _get_id raise ValueError('系统中当前没有定义这样的外部 ID:%s.%s ' % (module, xml_id)) alueError: 目前系统中没有定义这样的外部 ID: mat_mgmt.group_mat_mgmt_manager

4

1 回答 1

3

看起来您没有按顺序在openerp .py 中添加文件。您是从 CSV 文件还是从 View.xml 文件中收到此错误?

您需要检查openerp .py 文件。您可以先分配 ir.model.access.csv/module_view.xml,然后在“数据”属性中分配 module_security.xml。所以它会首先检查 ir.model.access.csv/module_view.xml 并且它不会找到您在 security.xml 中创建的那个组,它将在加载 ir.model.access.csv/module_view.xml 后加载文件。您可以检查它,您需要先传递 security.xml,然后传递 openerp .py 中的 ir.model.access.csv/module_view.xml文件

您还可以通过像这样分配组来检查:module_name.GROUP_XML_ID 无论您在哪里分配/使用这些组。

于 2013-05-17T05:30:10.480 回答