首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在内部模块odoo中添加菜单项继承?

在内部模块odoo中添加菜单项继承的步骤如下:

  1. 创建一个新的模块或者选择一个现有的模块来进行扩展。
  2. 在模块的__manifest__.py文件中添加depends字段,指定需要继承的模块。
  3. 创建一个新的XML文件,定义菜单项的布局和属性。
  4. 在XML文件中使用<menuitem>标签来定义菜单项,设置name属性为菜单项的名称,id属性为菜单项的唯一标识符。
  5. 使用<field>标签来设置菜单项的其他属性,如actionparentsequence等。
  6. 在模块的views目录下创建一个新的XML文件,引用刚刚创建的菜单项XML文件。
  7. 在模块的__init__.py文件中导入新创建的XML文件。
  8. 在模块的__init__.py文件中添加对新创建的XML文件的引用。

以下是一个示例:

  1. 创建一个名为my_module的新模块或选择一个现有的模块。
  2. my_module/__manifest__.py文件中添加depends字段,指定需要继承的模块,如'depends': ['base']
  3. 创建一个名为my_menu.xml的新XML文件,定义菜单项的布局和属性。
  4. my_menu.xml文件中使用以下代码定义菜单项:
代码语言:txt
复制
<odoo>
    <data>
        <menuitem id="menu_my_menu" name="My Menu" action="action_my_action" parent="menu_root" sequence="10"/>
    </data>
</odoo>

其中,id为菜单项的唯一标识符,name为菜单项的名称,action为菜单项点击后执行的动作,parent为菜单项的父级菜单,sequence为菜单项在父级菜单中的顺序。

  1. my_module/views目录下创建一个名为my_views.xml的新XML文件,引用刚刚创建的菜单项XML文件:
代码语言:txt
复制
<odoo>
    <data>
        <template id="assets_backend" inherit_id="web.assets_backend">
            <xpath expr="." position="inside">
                <script type="text/javascript" src="/my_module/static/src/js/my_script.js"></script>
            </xpath>
        </template>
        <menuitem name="My Menu" id="menu_my_menu" parent="menu_root" sequence="10"/>
    </data>
</odoo>
  1. my_module/__init__.py文件中导入新创建的XML文件:
代码语言:txt
复制
from . import views
  1. my_module/__init__.py文件中添加对新创建的XML文件的引用:
代码语言:txt
复制
def _load_data(cr, registry):
    ...
    cr.execute("SELECT id FROM ir_model_data WHERE module = 'my_module' AND name = 'menu_my_menu'")
    if not cr.fetchone():
        cr.execute("INSERT INTO ir_model_data (module, name, model, res_id) VALUES ('my_module', 'menu_my_menu', 'ir.ui.menu', %s)", (menu_id,))
    ...

请注意,以上示例中的代码仅供参考,具体实现可能因odoo版本和需求而有所不同。对于odoo的更多详细信息和使用方法,可以参考腾讯云的odoo相关产品和文档。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Odoo开发指北 01 初识Odoo

继承开发 Odoo提供了大量现成的模块给我们使用,但是某些情况下,我们需要制定符合自己需求的功能模块Odoo开发的一条黄金准则是——不要修改现有的模块,以免改动后的代码与原有模块产生混淆。...因此,odoo提供了继承机制,我们可以选择一个基础模块,然后继承它,在它的基础上进行修改、扩展,生成自己的模块。...然后使用自己的模块:把自己的模块路径设置到odoo,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...类,定义出的模型类会自动与Odoo提供的ORM接口匹配,也就是说这些模型类会自动存入sql。...构建菜单对象——在views文件夹下,使用xml定义菜单项。 构建动作对象,关联某个具体菜单项的响应。 构建视图对象:主要是list、tree、form、search视图。

2.4K30

Python如何添加自定义模块

一般来说,我们会将自己写的Python模块与python自带的模块分开存放以达到便于维护的目的。那么如何在Python添加自定义的模块呢?...在sys.path列表添加新的路径。 2. 将库文件复制到sys.path列表的目录里(如site-packages目录)。...下面我们来看一下第一种方法具体如何操作: 在python安装目录的site-package文件夹中新建pythontab.pth,上面site-package的路径是:/Library/Python/2.7...如果缺省的sys.path没有含有自己的模块或包的路径,我们也可以使用sys.path.apend方法来动态加入包路径。 知识点扩展: Python添加自定义模块原则: 1. 严格区分包和文件夹。...导入模块。就是一般的模块导入写法,注意只要包路径,不要文件夹路径。 以上就是Python如何添加自定义模块的详细内容,更多关于Python添加自定义模块的资料请关注ZaLou.Cn其它相关文章!

2.5K21
  • odoo 开发入门教程系列-继承(Inheritance)

    继承(Inheritance) Odoo的一个强大方面是它的模块化。模块专用于业务需求,但模块也可以相互交互。这对于扩展现有模块的功能非常有用。...在介绍特定的Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法的行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块化的方式扩展现有模型。...第一继承机制允许模块通过以下方式修改在另一个模块定义的模型的行为: 向模型添加字段 覆盖模型字段的定义 给模型添加约束 给模型添加方法 重写模型的现有方法 第二种继承机制...odoo,第一种机制最常用。在我们的例子,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。

    2.2K20

    odoo 开发入门教程系列-模块交互

    模块交互 在上一章,我们使用继承来修改模块的行为。在我们的房地产场景,我们希望更进一步,能够为客户生成发票。...Odoo提供了一个开发票模块,因此直接从我们的房地产模块创建发票是很简单的,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序创建发票 一个具体示例: 记账凭证(Account...为此,我们需要在estate_account模块为创建一个模型,继承estate.property模型。...super 调用 提示: 为了确保它正常工作,添加一个print 或者调试断点到重写的方法。...不幸的是,没有一种简单的方法可以知道如何Odoo创建任何给定的对象。大多数时候,有必要查看其模型,以找到所需的字段并提供适当的值。 学习的一个好方法是看看其他模块如何完成你想做的事情的。

    1.7K10

    odoo 给列表视图添加按钮实现数据文件导入

    实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 模块文件组织结构 说明:为了更好的表达本文主题,一些和主题无关的文件、代码已略去 odoo14\custom...attachments: file_name_suffix = attachment.name.split('.')[-1] # 针对文本文件,暂时不实现数据存储,仅演示如何处理文本文件...> 说明:,其中estate_customer_tree为下文javascript定义的组件,实现添加自定义按钮...> estate_customer_tree 组件定义 js实现 为列表视图添加自定义上传数据文件按钮 odoo14\custom\estate\static\src\js\estate_customer_tree_upload.js...) 注意:参考官方文档,t-extend这种继承方式为旧的继承方式,已废弃,笔者实践了最新继承方式,如下 <?

    3.5K30

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

    元素也可以放在元素,形如 说明: parent 指定父级菜单外部ID,如果上级菜单不在当前模块,则需要指定上级菜单所在模块,形如parent="moduleName.parent_menu_id" 修改菜单 本节要介绍的是一种特殊的修改方式...这种修改方式之所以特殊,是因为它不修改原有菜单的定义,而是通过重新定义菜单来修改,可以简单的类比为“继承”,具体做法如下: 定义一个新的菜单,将其id属性值设置为原有菜单所在模块名称及其...(如果需要的话),添加方式可以参考上文所述,需要注意的是,不管采用哪种方式,原有菜单的子菜单依然存在,并显示为新定义菜单的子菜单 隐藏原有菜单的子菜单(如果需要的话) 定义一个,将其id

    1.4K10

    odoo 开发入门教程系列-模型和基本字段

    模型和基本字段 在上一章的末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。...在我们的房地产模块,我们希望将与房地产相关的信息(名称(name)、描述(description)、价格(price)、居住面积(living area)…)存储在数据库。...odoo框架提供了数据库交互的工具 开始练习前,请确保estate模块已被安装,也就是说必须以installed的状态出现在Apps列表,如下 对象关系映射(Object-Relational Mapping...ORM 层是odoo的一个关键组件。该层避免了手动写入大部分SQL并提供可扩展性和安全服务. 业务对象被定义为继承于 Model的Python类。可以通过在定义设置属性来配置model。...给模型表estate_property添加字段 添加以下字段到表 Field Type name Char description Text postcode Char date_availability

    2.3K30

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

    类似CSV文件,XML文件也必须按约定添加到合适的目录,并在 __manifest__.py中进行定义。数据文件的内容也是在模块安装或者更新时按序加载。...当数据链接到视图时,我们将它们添加到views文件夹 本章,我们将通过XML文件加载我们第一个action和菜单。Actions 和菜单为数据库的标准记录。...这是因为,在odoo中加载CSV文件比加载XML文件更快。 odoo,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件的记录来定义的。...动作可以通过三种方式触发 : 点击菜单项目(链接接到指定动作) 点击视图按钮(如果与action关联) 对象的上下文action 本章仅涵盖第一种情况。...当需要相关行为时,需要在模型定义这些保留字段。 练习 -- 添加active字段 添加一个 active 字段到estate.property 模型。

    2.9K30

    odoo ORM API学习总结兼orm学习教程

    用于多继承模块共享的抽象父类,不会在数据库创建模型表 系统为每个数据库自动实例化每个模型一次。...通过继承此类来创建Odoo模型的: class user(Model): ... 系统将为安装了该类模块的每个数据库实例化一次类 _auto= True 是否应该创建数据库表。...(Inheritance and extension) Odoo提供三种不同的机制,以模块化方式扩展模型: 从现有模型创建新模型,向副本添加新信息,但保留原始模块 扩展其他模块定义的模型,替换以前的版本...这对于将新字段或方法添加到现有模型(在其他模块创建)或自定义或重新配置它们(例如更改其默认排序顺序)非常有用: class Extension0(models.Model): _name =...env['extension.0'].func({}) 返回: test b 注意: 如果同时继承抽象模块和非抽象模块,并把_name配置为非抽象模块,抽象模块的字段也会添加到非抽象模块对应的表 委托(

    13.4K10

    如何在 Ububtu 18.04 上安装 Odoo 13

    Python 模块: pip3 install wheel pip3 install -r odoo/requirements.txt 一旦完成,接触环境,输入: deactivate 我们将会创建一个新的目录...mkdir /opt/odoo13/odoo-custom-addons 稍后,我们将会将该目录添加到addons_path参数。这个参数定义了 Odoo 用来搜索模块的一个列表。...想要这么做,打开配置文件,并且添加下面的内容: /etc/odoo13.conf 重启 Odoo 服务并且使修改生效: sudo systemctl restart odoo13 此时,反向代理服务器配置好了...十一、总结 这篇指南带你浏览了如何在 Ubuntu 18.04 上的 Python 虚拟环境 安装 Odoo 13,并使用 Nginx 作为反向代理服务器。...我们展示了如何在生产环境如何启用多进程以及优化 Odoo

    8.7K41

    odoo 开发入门教程系列-模型之间的关系(Relations Between Models)

    参考: 本主题相关文档可查阅 Many2one 在我们的房地产模块,我们想定义房地产类型的概念,例如,房屋或公寓。...提示: 别忘记在 __init__.py导入新的Python模块文件,并在__manifest.py__添加数据或者访问权限。...> 重启服务,刷新浏览器验证 在房地产模块,我们仍然缺失两条关于房产的信息:买家和销售人员。...练习2 会用上述提到的两种常用model添加买家和销售人员到estate.property模块。将它们添加到form视图中新tab页面。 销售人员的默认值必须是当前用户。买家不能被复制。...odoo如何知道我们的报价与哪个房产相关?这就是使用odoo框架的一部分魔力:有时候事情是隐式定义的。

    4.4K40

    如何在 CentOS 8 上安装 Odoo 13

    这个指南讲解了如何在 CentOS 8 上一个 Python 虚拟机环境从源码安装 Odoo 13。我们将会从 Github 上编译 Odoo 源码并且配置 Nginx 作为反向代理服务器。.../opt/odoo13 python3 -m venv venv 使用source命令去激活这个环境: source venv/bin/activate 安装必要的 Python 模块: pip3 install...想要这么做,打开配置文件,并且添加下面的内容: /etc/odoo13.conf 重启 Odoo 服务并且使修改生效: sudo systemctl restart odoo13 此时,反向代理服务器配置好了...十二、总结 这篇指南带你浏览了如何在 CentOS 8 上的 Python 虚拟环境 安装 Odoo 13,并使用 Nginx 作为反向代理服务器。...我们展示了如何在生产环境如何启用多进程以及优化 Odoo

    3.9K20

    ODOO优化层级关系查询效率的方法

    Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系的建立。 代码如下 在上面的代码。 使用字段来关联上层记录。...(如递归查询文件夹文件) Odoo为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B的上级对象。那么存在这样的逻辑关系。...Odoo 应用 我们用Odoo11的product模块作为演示 在文件.看到产品目录(ProductCategory类.15行起)的代码 在Odoo11的演示数据,产品的目录结构一共有6个 我们查询下数据库的数据...要找Saleable下的所有子目录即可使用 作为条件 结论: 在Odoo的实际使用,发现使用parent存储特性的模块主要涉及account, product, stock_location....凡事皆有两面,这种存储特性会在数据库添加多余的字段。其实是以空间换时间。

    2.3K80

    ​在tinycolinux上编译odoo8

    本文关键字:在tinycolinux上源码安装odoo8,动态模式python+uswgi+nginx,精简安装odoo8模块 在前面《发布基于openerp的erpcmsone》时,我们谈到openerp...而且,odoo还采用了pgsql,从Postgres 9.x开始,Postgres又添加了激动人心的NoSQL的支持,,Postgres是通过添加一个json(jsonb)数据类型来实现文档型存储的。...最后,odoo采用python,要谈到语言的优异对比足于掀起大论战了,我不重复那些聚焦语言内部如何pythonic的老话题,只讲几条外部特征: 1,C系和原生程序,是基本所有现实可见系统实现的基石,但...database (SQL_ASCII) 在lnpp安装精简odoo,python模块和配置uswgi和nginx参数 ----- 我们先安装odoo再来处理python,这样运行它时可以逐个通过pip...安装缺少的python模块,将odoo8释放到/usr/local/nginx/html,精简/usr/local/nginx/html/odoo/addons安装的所有模块,仅保留以下: account

    1.4K40
    领券