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中是否没有正常引用数据文件