Module openerp odoo v11.0模型名称无效错误
我正在尝试构建一个名为kroshu的odoo模块,用于库存管理 我已经编写了所需的模型和视图 尝试安装模块后,odoo服务器显示此消息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.
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这也需要更正。