我已经在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服务器\ OpenERP的\插件\基\ IR \ ir_model.py”, 第850行,在_get_id中引发ValueError('没有这样的外部ID 当前在系统中定义:%s。%s'%(module,xml_id))alueError: 目前系统中没有定义此类外部ID: mat_mgmt.group_mat_mgmt_manager
答案 0 :(得分:3)
看起来您没有按顺序在 openerp .py中添加文件。您是从CSV文件还是从View.xml文件中收到此错误?
您需要检查 openerp .py文件。您可以首先分配ir.model.access.csv / module_view.xml,然后在'data'属性中分配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,无论您在哪里分配/使用这些组。