向OpenERP中的用户组授予权限时出错

向OpenERP中的用户组授予权限时出错,openerp,Openerp,我在OpenERP中创建了一个新模块。我已经创建了两个用户组,manager和user。接下来,我想允许经理只访问他自己项目的细节。我在一个安全XML文件中添加了以下代码 <record id="property_rule_mat_mgmt_manager" model="ir.rule"> <field name="name">Material Manage Rule</field> <field mod

我在OpenERP中创建了一个新模块。我已经创建了两个用户组,manager和user。接下来,我想允许经理只访问他自己项目的细节。我在一个安全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>  

物料管理规则
['|',('project_id.members','=',user.id),('project_id.user_id','=',user.id)]
但我犯了这样的错误

服务器回溯(最近一次调用上次):文件 “C:\OpenErp\OpenErp\OpenErp web\addons\web\session.py”,第91行,在 发送 返回openerp.netsvc.dispatch_rpc(服务名称、方法、参数)文件“C:\openerp\openerp\openobject server\openerp\netsvc.py”,第行 361,在调度中 结果=ExportService.getService(服务名称).dispatch(方法,参数)文件 “C:\OpenErp\OpenErp\openobject server\OpenErp\service\web\u services.py”, 第582行,发送中 security.check(db,uid,passwd)文件“C:\OpenErp\OpenErp\openobjectserver\OpenErp\service\security.py”, 第40行,签入 pool=pooler.get_pool(db)文件“C:\OpenErp\OpenErp\openobject server\OpenErp\pooler.py”,第50行,在 去游泳池 返回get_db_和_pool(db_名称、强制_演示、状态、更新_模块)[1]文件 “C:\OpenErp\OpenErp\openobject server\OpenErp\pooler.py”,第33行,在 获取\u db\u和\u池 registry=RegistryManager.get(db\u name、force\u demo、status、update\u模块、pooljobs)文件 “C:\OpenErp\OpenErp\openobject server\OpenErp\modules\registry.py”, 第154行,进站 更新\u module,pooljobs)文件“C:\OpenErp\OpenErp\openobject server\OpenErp\modules\registry.py”, 第176行,纽约 加载模块(registry.db、force\u demo、status、update\u模块)文件 “C:\OpenErp\OpenErp\openobject server\OpenErp\modules\loading.py”, 第329行,在load_模块中 已处理=加载标记的模块(cr、图形、状态到加载、力、状态、报告、加载的模块)文件 “C:\OpenErp\OpenErp\openobject server\OpenErp\modules\loading.py”, 第244行,加载标记的模块中 已加载,已处理=加载\模块\图形(cr,图形,progressdict,报告=报告,跳过\模块=已加载\模块)文件 “C:\OpenErp\OpenErp\openobject server\OpenErp\modules\loading.py”, 第180行,加载模块图中 加载数据(模块名称、idref、模式)文件“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行,输入加载数据 转换xml导入(cr、模块名称、fp、idref、模式、noupdate、报告)文件 “C:\OpenErp\OpenErp\openobject server\OpenErp\tools\convert.py”,第行 955,在convert\u xml\u导入中 解析(doc.getroot())文件“C:\OpenErp\OpenErp\openobject server\OpenErp\tools\convert.py”,第行 848,在解析中 self.\u标记[rec.tag](self.cr,rec,n)文件“C:\OpenErp\OpenErp\openobject server\OpenErp\tools\convert.py”,第行 806,in_tag_记录 f_val=self.id_get(cr,f_ref)文件“C:\OpenErp\OpenErp\openobject server\OpenErp\tools\convert.py”,第行 825,在身份证上 res=self.model\u id\u get(cr,id\u str)文件“C:\OpenErp\OpenErp\openobject server\OpenErp\tools\convert.py”,第行 834,型号为 返回模型数据对象获取对象引用(cr,self.uid,mod,id\u str)文件 “C:\OpenErp\OpenErp\openobjectserver\OpenErp\tools\cache.py”,第行 18,在查找中 r=self.lookup(self2,cr,*args)文件“C:\OpenErp\OpenErp\openobjectserver\OpenErp\tools\cache.py”,第行 46,在查找中 value=d[key]=self.method(self2,cr,*args)文件“C:\OpenErp\OpenErp\openobject server\OpenErp\addons\base\ir\ir\u model.py”, 第857行,在get_对象_引用中 data\u id=self.\u获取\u id(cr、uid、模块、xml\u id)文件“C:\OpenErp\OpenErp\openobject server\OpenErp\tools\cache.py”,第行 18,在查找中 r=self.lookup(self2,cr,*args)文件“C:\OpenErp\OpenErp\openobjectserver\OpenErp\tools\cache.py”,第行 46,在查找中 value=d[key]=self.method(self2,cr,*args)文件“C:\OpenErp\OpenErp\openobject server\OpenErp\addons\base\ir\ir\u model.py”, 第850行,输入获取id raise VALUERROR('系统中当前未定义此类外部ID:%s.%s'(模块,xml_ID))VALUERROR:无此类外部ID 当前在系统中定义:物料管理、模型、项目

将此行替换为

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

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

  • 激活开发者模式
  • 转到设置|技术|数据库结构|模型
  • 查找并选择所需的模型
  • 在顶部显示“调试视图”的下拉列表中,选择“查看日志(perm read)”

您将在那里看到XML ID

我替换了该行,但现在我得到了另一个错误值error:域表达式中的无效字段'project\u ID.members',要删除project\u ID.member和使用过的成员['.'',('members','in','user.ID]),('project\u ID.user\u ID','=',user.ID)],就像这样亲爱的!!我得到了一个类似ValueError的错误:无效字段“project_id.user_id”['|',('members','in',[user.id]),('user_id','=',us‌​使用这个