添加菜单选项

来自Odoo大V社-odoo中文开发手册
35734116讨论 | 贡献2016年12月16日 (五) 18:43的版本

跳转至: 导航搜索

现在我们有一个存储数据的模型,我们应该在用户界面上可以操作它。

为此,我们应该添加一个菜单选项来打开To-do任务模型,以便可以使用它。

创建views/todo_menu.xml文件以定义菜单项及其执行的动作:

<?xml version="1.0"?>
<odoo>
   <act_window id="action_todo_task" name="To-do Task" res_model="todo.task" view_mode="tree,form" />
   <menuitem id="menu_todo_task" name="Todos" action="action_todo_task" />
</odoo>

用户界面接口,包括菜单和动作,存储在数据库表中。当模块安装或升级时,xml数据文件中的这些用户接口定义就会被加载到数据库中。上面的代码就是一个Odoo数据文件,定义了两条要添加到Odoo的记录:

<act_window>元素定义了一个客户端窗口动作,该动作将以列表和窗体视图的顺序打开todo.task模型。 <menuitem>定义了一个顶级菜单项,调用前面定义的action_todo_task动作。

两个元素都包含了id属性。 此id属性也称为XML ID,它用于唯一标识模块内的每个数据元素,并且可以由其他元素使用来引用它。 在本例中,<menuitem>元素需要指定要处理的动作,就使用了<act_window> 的ID来引用它。 XML ID的相关内容,在第4章“模块数据”中有更详细的讨论。

目前,我们的模块还不知道这个新定义的XML数据文件。 为了让模块加载这个文件,我们需要将它添加到__manifest__.py文件的data属性中。 data属性中的文件列表都将被模块加载。 manifest清单data属性定义如下:

'data': ['views/todo_menu.xml'],

现在,我们需要重新升级模块以使这些更改生效。 升级后转到Todos顶部菜单,您应该看到我们的新菜单选项效果如下: 2 3 1 1.png