odoo17开发教程(7):用户界面UI的交互-菜单

本文介绍了如何在Odoo17中使用快捷方式简化菜单声明,通过XML定义菜单结构,以三层菜单为例,详细展示了如何为estate.property创建并关联操作。
摘要由CSDN通过智能技术生成

声明菜单menuitem

为了减少声明菜单(ir.ui.menu)并将其连接到相应操作的复杂性,我们可以使用 <menuitem> 快捷方式。
 

还是拿 test_model_action 举例,一个最简单的菜单如下:

<menuitem id="test_model_menu_action" action="test_model_action"/>

菜单 test_model_menu_action 与操作 test_model_action 相连,而操作 test_model_action 与模型 test_model 相连。如前所述,动作可以看作是菜单和模型之间的链接

不过,菜单总是遵循一种结构,在实践中有三个层次的菜单:

  1. 根菜单,显示在应用程序切换器中(Odoo 社区应用程序切换器是一个下拉菜单)
  2. 一级菜单,显示在顶部栏中
  3. 操作菜单

下图分别是1级菜单,2,3级菜单

Root menus

First level and action menus

定义结构的最简单方法是在 XML 文件中创建结构。 为test_model_action准备的最基本的结构如下:

<menuitem id="test_menu_root" name="Test">
    <menuitem id="test_first_level_menu" name="First Level">
        <menuitem id="test_model_menu_action" action="test_model_action"/>
    </menuitem>
</menuitem>

第三级菜单的名称取自动作名称。

实践

为我们的 estate.property 动作创建3层的菜单

创建以下文件views/estate_menus.xml:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <menuitem id="estate_property_menu_root" name="Real Estate">
        <menuitem id="real_restate_advertisements_menu" name="Advertisements">
            <menuitem id="estate_property_menu_action" action="estate_property_action"/>
        </menuitem>
    </menuitem>
</odoo>

记得在manifest.py中定义它。

 然后修改views/estate_property_views.xml为:

<?xml version="1.0"?>
<odoo>
    <record id="estate_property_action" model="ir.actions.act_window">
        <field name="name">房屋</field>
        <field name="res_model">estate_property</field>
        <field name="view_mode">tree,form</field>
    </record>
</odoo>

重启你的容器,刷新浏览器,应该能够看到你刚刚定义的菜单啦!

 甚至已经可以新建房产信息了,太棒了!

ps: 如果重启容器后,不起作用,记得开启开发者模式

如果还看不到,请找到apps里面找到你的模块,点击Upgrade


上一篇 odoo17开发教程(6):用户界面UI的交互-创建Action_odoo17开发文档-CSDN博客

下一篇 odoo17开发教程(8):设置界面UI的字段属性_odoo17二次开发-CSDN博客

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值