找不到odoo ir.rule xml id错误

时间:2017-03-28 06:07:22

标签: openerp

openerp.py

    'depends': ['base','hr'],

# always loaded
'data': [
    'security/ir.rule.xml',
    'security/ir.model.access.csv',
    'views/views.xml',
],

安全/ ir.rule.xml

  <data noupdate="0">
<record id="property_rule_jj_loan_creator" model="ir.rule" forcecreate="True">
    <field name="name">loan creator</field>
    <field name="model_id" ref="model_jj_loan"/>
    <field name="domain_force">[('employee_id.user_id','=',user.id), ('state', '=', 'Draft')]</field>
    <field name="perm_create" eval="True"/>
    <field name="perm_write" eval="True"/>
    <field name="perm_unlink" eval="True"/>
    <field name="groups" eval="[(4,ref('base.group_user'))]"/>
</record> 

重启odoo后更新模型 错误说:

  

引发ValueError('在系统中找不到外部ID:%s'%(xmlid))   ParseError:“系统中找不到外部ID:model_jj_loan”   在解析/home/addons/jj_loan/security/ir.rule.xml:4时,附近

我见过许多示例代码与我的相同,那么我有什么遗漏吗?

谢谢你:)

1 个答案:

答案 0 :(得分:1)

错误与模型名称有关:model_jj_loan 模型jj.loan不是在您的数据库上创建的:

检查模型的名称必须是这样的,如果不需要更改xml文件上的名称:

_name = 'jj.loan'

如果您的名称与您需要检查是否在数据库上创建表是否使用pgAdmin,我认为您将找不到它。如果是这样 : 确保在.py中导入模块__init__.py,因为如果__init__.py中不存在,则odoo将不会在数据库上安装模型,如果您将模型代码放入问题中没有解决问题