Odoo模块创建步骤

1、进入模块目录(默认为odoo/addons),使用odoo-bin脚手架命令创建模块结构

odoo-bin scaffold library_app

模块结构如下

└─library_app
    │  __init__.py  #Python模块文件
    │  __manifest__.py  #描述文件
    │
    ├─controllers   #Web控制器
    │      controllers.py
    │      __init__.py
    │
    ├─demo  #示例数据
    │      demo.xml
    │
    ├─models    #业务对象
    │      models.py
    │      __init__.py
    │
    ├─security  #访问权限
    │      ir.model.access.csv
    │
    └─views #视图
            templates.xml
            views.xml

2、创建models文件

#新建models/library_book.py,定义model类
class Book(models.Model):
...
#编辑models/__init__.py中加入引用
from . import library_book

3、添加访问规则,为自定义用户组可以指定base.group_user

#编辑security/ir.model.access.csv,加入模型对象model_library_book的访问规则
access_book_user,Book User Access,model_library_book,library_group_user,1,0,0,0
...

4、创建菜单及动作

#新建views/library_menu.xml,添加菜单及动作
#主菜单
<menuitem id="library_menu"
          name="Library" />
#菜单点击动作
<act_window id="action_library_book"
  name="Library Books"
  res_model="library.book"
  view_mode="tree,form"
/>
#子菜单
<menuitem id="menu_library_book"
          name="Book"
          action="action_library_book"
          parent="library_menu" />

5、创建视图,定义form、tree、search视图

#新建views/book_view.xml,添加form、tree、search视图
<record id="view_form_book" model="ir.ui.view">
<form>
...
<record id="view_tree_book" model="ir.ui.view">
<tree>
...
<record id="view_search_book" model="ir.ui.view">
<search>
...

6、编辑__manifest__.py,data和demo中引用数据文件csv或xml

'data': [
   'security/ir.model.access.csv',
   'views/library_menu.xml',
   'views/book_view.xml',
   ...
],
'demo': [
   'data/book_demo.xml',
],

问题:如果菜单不显示,请检查manifest.py中是否没有正常引用数据文件