我正在使用Odoo Online并尝试安装我已构建的自定义模块。我安装了Base import module以允许在Odoo Online实例上安装自定义模块。
然后我创建了一个由以下内容组成的简单模块:
mymodule/
__init__.py
__manifeset__.py
product.py
views/
product_product_tree.xml
以下是文件的内容:
__初始化__。PY
from . import product
__清单__。PY
{
'name': "My Module",
'version': '1.0',
'depends': ['stock', 'sale', 'contacts', 'purchase'],
'description': """
Add custom functionality.
""",
# data files always loaded at installation
'data': [
'views/product_product_tree.xml',
],
}
product.py
from odoo import models, fields, api
class ProductProduct(models.Model):
_inherit = 'product.product'
x_reserved_qty = fields.Float(string='Reserved', readonly=True)
视图/ product_product_tree.xml
<odoo>
<data>
<record model="ir.ui.view" id="mymodule.product_product_tree">
<field name="name">x_product.product.tree</field>
<field name="model">product.product</field>
<field name="priority" eval="16"/>
<field name="inherit_id" ref="product.product_product_tree_view"/>
<field name="arch" type="xml">
<xpath expr="//tree" position="inside">
<field name="x_reserved_qty"/>
</xpath>
</field>
</record>
</data>
</odoo>
然后我压缩文件并通过Base Import Module导入它。这样做会导致错误,并且模块无法安装。发生错误是因为模型上不存在x_reserved_qty
字段,即使我已在product.py
中定义了该字段。似乎模块的python部分永远不会被执行。
我可以通过注释<field name="x_reserved_qty"/>
行并重新导入模块来确认这一点。这次导入成功,但当我浏览Settings > Technical > Database Structure > Fields
时,我看不到我的新字段在任何地方列出。
有人知道通过此Base Import Module方法导入的自定义模块是否支持python文件?模块描述说:
此模块允许授权用户导入自定义数据模块 (.xml文件和静态组件)用于自定义目的。
它特别提到了.xml和静态资产,但没有提到python文件。所以,我只是想知道我在我的python文件中是否做错了导致它无法正常工作,或者它实际上是否设计为不支持模块中的python文件。
答案 0 :(得分:2)
它不支持Python文件(可能是为了安全性)。对于odoo服务器来编译你的python文件,必须重新启动它。当您使用runbot或Odoo托管您的实例时,您无法做的事情。