使用基本导入模块为Odoo Online安装自定义模块

时间:2016-12-29 06:58:45

标签: openerp

我正在使用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文件。

1 个答案:

答案 0 :(得分:2)

它不支持Python文件(可能是为了安全性)。对于odoo服务器来编译你的python文件,必须重新启动它。当您使用runbot或Odoo托管您的实例时,您无法做的事情。