向openerp中的模块添加安全性时出错

向openerp中的模块添加安全性时出错,openerp,Openerp,我已经在openerp中创建了一个新模块,现在我想为该模块提供安全性,因为我已经在模块文件夹中创建了一个名为“security”的文件夹,并在其中创建了一个xml文件和ir.model.access.csv文件。我的目标是为我的模块创建两个角色,一个是经理,另一个是用户。 为此,我在xml文件中添加了以下代码 <record id="group_mat_mgmt_user" model="res.groups"> <field name="name">Us

我已经在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\u model.py”, 第850行,in_get_id raise ValueError('没有这样的外部id 当前在系统中定义:%s.%s%%(模块,xml_id))错误: 系统中当前未定义此类外部ID: 物料管理组物料管理经理


看起来您没有按顺序在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,无论您在何处分配/使用这些组。

是的,我已经在openerp.py文件中添加了它,例如“data”:[“security/mat\u mgmt\u security.XML',“security/ir.model.access.csv',]”,但我已经单独添加了视图XML,现在我已经添加了它,现在它正在工作。谢谢你:-)