Module openerp odoo v11.0模型名称无效错误

Module openerp odoo v11.0模型名称无效错误,module,odoo,Module,Odoo,我正在尝试构建一个名为kroshu的odoo模块,用于库存管理 我已经编写了所需的模型和视图 尝试安装模块后,odoo服务器显示此消息 File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\ir \ir_actions.py", line 128, in _check_model raise ValidationError(_('Invalid model name %r in action definition.

我正在尝试构建一个名为kroshu的odoo模块,用于库存管理 我已经编写了所需的模型和视图 尝试安装模块后,odoo服务器显示此消息

  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\ir  \ir_actions.py", line 128, in _check_model
  raise ValidationError(_('Invalid model name %r in action definition.')  % action.res_model)
   odoo.tools.convert.ParseError: "Invalid model name 'kroshu.product' in  action definition.
    None" while parsing file:/c:/program%20files%20(x86)/odoo%2011.0/server/odoo/addons/kroshu_khalil_kasmi/data/actions.xml:5, near
产品 克罗舒产品 树 我的模块名为Product.py:

从odoo导入模型、字段 类Productmodels。模型: _名称='kroshu.product' product_id=字段。Charproduct id,必需=True product_name=字段。Charproduct name,必填=True 产品描述=字段。文本产品描述 产品类型=字段.One2manyproduct.type,产品类型\u id,字符串=类型 product\u category=fields.One2manyproduct.category,product\u category\u id,string=category 现存量=字段。整数现存量,必填=真 forcasted_数量=字段。整数强制数量 location\u in\u stock=字段。Charproduct location in stock 条形码=字段。文本条形码 供应商=字段。One2manyproduct.供应商,供应商id,字符串=供应商/制造商 成本=字段。浮动成本 stock=fields.One2manykroshu.stock,stock\u id,string=in stock my action_views.xml文件:

产品 克罗舒产品 树 产品类别 产品类别 树 ........ 还有更多的线 我的_u; init _u;.py文件:

从…起进口类别 从…起进口产品
根据你上面所说的。问题很可能是在_uinit__u; py.py文件中,您正在导入产品,但该文件名为product.py。我也不确定Product.py中的缩进,但这可能只是复制和粘贴到堆栈溢出中的内容的格式设置。

您的模型定义中有一个错误:

barcode = fields.text("barcode")
而不是:

barcode = fields.Text("barcode")
将文本更改为文本,您的代码就会变得很好

第二种解决方案: 尝试重命名模型名称,更改

_name = 'kroshu.product'
例如:

_name = 'kroshuproduct'
例如,Odoo通常使用此表达式指定模型产品位于de模块名kroshup内

此错误主要发生在模型中存在错误时 释义若要检测错误,请注释所有字段并测试每个字段 只有田地


希望这对你有帮助!太好了

在编写新模块时,为了调试常规设置,可以先简化,然后逐步添加,以保持工作正常

在您的情况下,首先创建一个具有类似名称的字段的模型,并使其正常工作。然后,添加更多简单字段、视图和操作。确保可以为新模型创建记录

然后,在添加关系字段时,确保在清单文件中包含依赖项,在您的案例中,目标模型是product for product。产品等


最后,按照相同的方法,确保第二个模型kroshu.stock也需要存在。

您能判断解释器是否正在编译Product.py吗?如果正在处理Product.pyc文件,您应该会找到它。它可能只是堆栈溢出中的格式化内容,但是缩进也会显示在Product.py文件上。我来解释一下。您提到您的文件名为Product.py,但在init.py文件中您导入了产品。您可能希望确保Product.py文件实际上是Product.py,以确保正确导入该文件。Product\u Description还有一个引用。您可以在视图中使用多个字段模型引用,但模型文件中只有一个定义。是。我的意思是代码中出现了另一个小写的.text:product_description=fields.textproduct description这也需要更正。