0

我在 OpenERP 中创建了一个新模块。我创建了两个用户组,经理和用户。接下来我想授予经理权限,他只需要访问自己项目的详细信息。我在安全 XML 文件中添加了以下代码。

<record id="property_rule_mat_mgmt_manager" model="ir.rule">
            <field name="name">Material Manage Rule</field>
            <field model="ir.model" name="model_id" ref="model_project_project"/>
            <field name="domain_force">['|',('project_id.members','=',user.id),('project_id.user_id','=',user.id)]</field>
            <field name="groups" eval="[(4,ref('group_mat_mgmt_manager')), (4,ref('group_mat_mgmt_user'))]"/>
        </record>  

但我遇到了这样的错误

服务器回溯(最后一次调用):文件“C:\OpenErp\openerp\openerp-web\addons\web\session.py”,第 91 行,在发送返回 openerp.netsvc.dispatch_rpc(service_name, method, args) 文件“C:\OpenErp\openerp\openobject-server\openerp\netsvc.py”,第 361 行,在 dispatch_rpc 结果 = ExportService.getService(service_name).dispatch(method, params) 文件“C:\OpenErp\openerp\openobject- server\openerp\service\web_services.py”,第 582 行,调度 security.check(db,uid,passwd) 文件“C:\OpenErp\openerp\openobject-server\openerp\service\security.py”,第 40 行, 在检查 pool = pooler.get_pool(db) File "C:\OpenErp\openerp\openobject-server\openerp\pooler.py", line 50, in get_pool return get_db_and_pool(db_name, force_demo, status,update_module)[1] 文件“C:\OpenErp\openerp\openobject-server\openerp\pooler.py”,第 33 行,在 get_db_and_pool 注册表 = RegistryManager.get(db_name, force_demo, status, update_module, pooljobs) 文件“C: \OpenErp\openerp\openobject-server\openerp\modules\registry.py”,第 154 行,在获取 update_module,pooljobs)文件“C:\OpenErp\openerp\openobject-server\openerp\modules\registry.py”,行176,在新的 openerp.modules.load_modules(registry.db, force_demo, status, update_module) 文件“C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py”中,第 329 行,在 load_modules 中处理 = load_marked_modules (cr、graph、states_to_load、force、status、report、loaded_modules)文件“C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py”,第 244 行,在 load_marked_modules 已加载,已处理 = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules) 文件“C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py”,第 180 行,在 load_module_graph load_data (module_name, idref, mode) 文件“C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py”,第 78 行,在 load_data = lambda *args: _load_data(cr, *args, kind='data ') 文件“C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py”,第 125 行,在 _load_data tools.convert_xml_import(cr, module_name, fp, idref, mode, noupdate, report) 文件“C :\OpenErp\openerp\openobject-server\openerp\tools\convert.py",第 955 行,在 convert_xml_import obj.parse(doc.getroot()) 文件“C:\OpenErp\openerp\openobject-server\openerp\tools\convert.py”,第 848 行,解析 self._tags[rec.tag](self.cr, rec, n) 文件“C:\OpenErp\openerp\openobject -server\openerp\tools\convert.py”,第 806 行,在 _tag_record f_val = self.id_get(cr, f_ref) 文件“C:\OpenErp\openerp\openobject-server\openerp\tools\convert.py”,行825,在 id_get res = self.model_id_get(cr, id_str) 文件“C:\OpenErp\openerp\openobject-server\openerp\tools\convert.py”,第 834 行,在 model_id_get 返回 model_data_obj.get_object_reference(cr, self. uid, mod, id_str) 文件“C:\OpenErp\openerp\openobject-server\openerp\tools\cache.py”,第 18 行,在查找中 r = self.lookup(self2, cr, *args) 文件“C: \OpenErp\openerp\openobject-server\openerp\tools\cache.py",第 46 行,在查找值 = d[key] = self.method(self2, cr, *args) 文件“C:\OpenErp\openerp\openobject-server\openerp\addons\base\ir\ir_model.py”,第 857 行,在get_object_reference data_id = self._get_id(cr, uid, module, xml_id) 文件“C:\OpenErp\openerp\openobject-server\openerp\tools\cache.py”,第 18 行,在查找中 r = self.lookup(self2, cr, *args) 文件“C:\OpenErp\openerp\openobject-server\openerp\tools\cache.py”,第 46 行,查找值 = d[key] = self.method(self2, cr, *args)文件“C:\OpenErp\openerp\openobject-server\openerp\addons\base\ir\ir_model.py”,第 850 行,在 _get_id raise ValueError('系统中当前没有定义这样的外部 ID:%s.%s ' % (module, xml_id)) ValueError:系统中当前没有定义这样的外部 ID:mat_mgmt。模型项目项目

4

2 回答 2

0

如果其他人发现很难找到正确的模型 ID,您可以执行以下操作。

  • 开启开发者模式
  • 转到设置 | 技术 | 数据库结构 | 楷模
  • 查找并选择您想要的型号
  • 在顶部显示“Debug view#”的下拉菜单中,选择“View Log (perm read)”

您将在那里看到 XML ID

于 2015-03-14T04:31:37.370 回答
0

将此行替换为

<field model="ir.model" name="model_id" ref="model_project_project"/>

<field model="ir.model" name="model_id" ref="project.model_project_project"/>
于 2013-05-20T07:13:12.107 回答