草庐IT

Odoo 菜单定义和修改学习总结

odoo菜单定义和修改学习总结环境odoo-14.0.post20221212.tar定义菜单方式1:说明:id菜单外部IDname如果不指定name,则:如果为菜单设置了action,则获取actionrecord定义中name字段的值作为菜单name属性的值如果未设置菜单action,则获取菜单外部ID为值作为菜单name属性的值action打开菜单时需要执行的action的外部IDweb_icon指定菜单图标,格式:模块名称,图标路径,形如estate,static/img/icon.png意为estate模块下的static/img/icon.png图标。其中图标路径,一般是相对于模块

Odoo 菜单定义和修改学习总结

odoo菜单定义和修改学习总结环境odoo-14.0.post20221212.tar定义菜单方式1:说明:id菜单外部IDname如果不指定name,则:如果为菜单设置了action,则获取actionrecord定义中name字段的值作为菜单name属性的值如果未设置菜单action,则获取菜单外部ID为值作为菜单name属性的值action打开菜单时需要执行的action的外部IDweb_icon指定菜单图标,格式:模块名称,图标路径,形如estate,static/img/icon.png意为estate模块下的static/img/icon.png图标。其中图标路径,一般是相对于模块

odoo 开发入门教程系列-一些用户界面

一些用户界面数据文件(XML)参考:该主题关联文档可以查看DataFiles.上一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便的,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。比如包含HTMLtags的helpfield。虽然可以通过CSV文件加载这样的数据,但是使用XML更方便。类似CSV文件,XML文件也必须按约定添加到合适的目录,并在__manifest__.py中进行定义。数据文件中的内容也是在模块安装或者更新时按序加载。因此,对CSV文件所做的所有说明对XML文件都适用。当数据链接到视图时,我们将它们添加到views文件

odoo 开发入门教程系列-一些用户界面

一些用户界面数据文件(XML)参考:该主题关联文档可以查看DataFiles.上一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便的,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。比如包含HTMLtags的helpfield。虽然可以通过CSV文件加载这样的数据,但是使用XML更方便。类似CSV文件,XML文件也必须按约定添加到合适的目录,并在__manifest__.py中进行定义。数据文件中的内容也是在模块安装或者更新时按序加载。因此,对CSV文件所做的所有说明对XML文件都适用。当数据链接到视图时,我们将它们添加到views文件

odoo 给form表单视图内联列表添加按钮

实践环境Odoo14.0-20221212(CommunityEdition)代码实现模块文件组织结构说明:为了更好的表达本文主题,一些和主题无关的文件、代码已略去odoo14\custom\estate│__init__.py│__manifest__.py│├─models│estate_customer.py│estate_property_offer.py│__init__.py│├─static│││└─src│└─xml│estate_customer_inline_tree_buttons.js│└─viewsestate_customer_views.xmlwebclient_

odoo 给form表单视图内联列表添加按钮

实践环境Odoo14.0-20221212(CommunityEdition)代码实现模块文件组织结构说明:为了更好的表达本文主题,一些和主题无关的文件、代码已略去odoo14\custom\estate│__init__.py│__manifest__.py│├─models│estate_customer.py│estate_property_offer.py│__init__.py│├─static│││└─src│└─xml│estate_customer_inline_tree_buttons.js│└─viewsestate_customer_views.xmlwebclient_

odoo Actions学习总结

环境odoo-14.0.post20221212.tarActions(动作)action定义系统响应用户操作的行为:登录、操作按钮、选择发票等…action可以存储在数据库中,也可以作为字典直接返回,例如按钮方法。所有Action都有两个强制属性:type当前Action的类别,决定可以使用哪些字段以及如何解释actionnameaction的名称,在客户端的界面中显示对action的简短用户可读描述Bindings(绑定)除了两个强制属性外,所有action有用于在任意模型的上下文菜单中显示动作的可选属性:binding_model_id指定action绑定的模型,格式:moduleNam

odoo Actions学习总结

环境odoo-14.0.post20221212.tarActions(动作)action定义系统响应用户操作的行为:登录、操作按钮、选择发票等…action可以存储在数据库中,也可以作为字典直接返回,例如按钮方法。所有Action都有两个强制属性:type当前Action的类别,决定可以使用哪些字段以及如何解释actionnameaction的名称,在客户端的界面中显示对action的简短用户可读描述Bindings(绑定)除了两个强制属性外,所有action有用于在任意模型的上下文菜单中显示动作的可选属性:binding_model_id指定action绑定的模型,格式:moduleNam

odoo Web Controllers 学习总结

环境odoo-14.0.post20221212.tarWebControllersControllers控制器需要提供可扩展性,就像Model,但不能使用相同的机制,因为先决条件(已加载模块的数据库)可能还不可用(例如,未创建数据库或未选择数据库)。因此,控制器提供了自己的与模型的扩展机制:通过继承Controller创建控制器。通过route()修饰的方法定义路由:classMyController(odoo.http.Controller):@route('/some_url',auth='public')defhandler(self):returnstuff()要重写控制器,继承其类

odoo Web Controllers 学习总结

环境odoo-14.0.post20221212.tarWebControllersControllers控制器需要提供可扩展性,就像Model,但不能使用相同的机制,因为先决条件(已加载模块的数据库)可能还不可用(例如,未创建数据库或未选择数据库)。因此,控制器提供了自己的与模型的扩展机制:通过继承Controller创建控制器。通过route()修饰的方法定义路由:classMyController(odoo.http.Controller):@route('/some_url',auth='public')defhandler(self):returnstuff()要重写控制器,继承其类