Odoo - 脚手架?

And*_*ius 23 scaffold odoo

在这里读到你可以使用命令构建一个模块,因此你不需要手动创建一些初始文件.但是这样的命令对master(在Odoo开发分支上)不起作用:

./oe scaffold Academy ../my-modules
Run Code Online (Sandbox Code Playgroud)

因为oe在openerp目录中没有调用这样的文件.这个东西在最新版本中有变化吗?如何在Odoo中构建模块?

小智 29

现在odoo 10或更高版本使用了odoo.py的odoo-bin

  1. 在shell或终端上,将目录更改为odoo文件夹.也许它在/opt/odoo,或者它可能在/home/odoo:

    cd /opt/odoo
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用odoo.py脚本创建一个新模块:

    ./odoo.py scaffold my_new_module ./addons/
    
    Run Code Online (Sandbox Code Playgroud)

(其中my_new_module是新模块的名称,而./addons/是Odoo addons目录)

  1. 编辑./addons/my_new_module/__openerp__.py文件.

    nano ./addons/my_new_module/__openerp__.py
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更改名称字段以设置模块的用户友好名称(例如"Andrius的新模块").还可以更改说明和字段.并将所需的模块(例如"mail")添加到依赖于模块依赖项的列表中.

    'depends': ['base', 'mail'],
    
    Run Code Online (Sandbox Code Playgroud)
  3. 编辑models.py

    nano ./addons/my_new_module/models.py
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在my_new_module/models.py文件中添加代码,例如:

from openerp import models, api

class FooterlessNotification(models.Model)
    _inherit = 'mail.notification'

    @api.model
    def get_signature_footer(self, user_id, res_model=None, res_id=None, context=None, user_signature=True):
        return ""
Run Code Online (Sandbox Code Playgroud)

(例如,此代码将扩展'mail.notification'模型,并将其get_signature_footer方法替换为返回空页脚的方法.)

  1. 通过Odoo设置安装模块.

要在那里找到它,您可能需要使用"更新模块列表"选项.

如果找不到"更新模块列表"选项,则可能需要在当前用户的设置中启用"技术功能"复选框.

要显示模块,而不仅仅是应用程序,通过单击标记前面的小"x",从搜索框过滤器中删除标记"应用程序".


小智 7

您可以使用./odoo-bin脚手架module_name / odoo / odoo-server / addons /

要么

./odoo-bin支架模块名/ odoo / odoo-server / custom_addons /

这里custom_addons是您在odoo-server /中的目录

Odoo10中的cmd:

./odoo-bin scaffold <module_name> <destination path where you want to create> 
Run Code Online (Sandbox Code Playgroud)


Dan*_*eis 5

使用odoo.py代替oe

./path/to/odoo/odoo.py scaffold my-module
Run Code Online (Sandbox Code Playgroud)