Odoo二次开发
部署odoo
-
git上拉取源码 git@github.com:odoo/odoo.git
-
Pycharm中创建虚拟环境 python -m venv venv
-
给当前项目添加虚拟环境
-
生成odoo配置文件 ./odoo-bin --save --config odoo.conf -stop-after-init
-
修改Pycharm启动配置
修改odoo配置文件
[options]
addons_path = ./addons,./odoo/addons, # 模块路径
db_host = 127.0.0.1 # 启动地址
db_port = 5433 # 数据库端口
db_user = odoo # 数据库用户名
db_password = odoo #数据库密码
http_port = 8069 # 端口
db_name = 数据库名(以指定数据库启动,可不填)
- 在odoo同级目录创建自定义模块父目录 myaddons,并添加到配置文件
二次开发
添加新应用
找到odoo源码中的addons文件夹,在同级创建一个新的文件夹myaddons,Pycharm中打开命令行窗口,使用命令
python ./odoo/odoo-bin scaffold myaddons/<youmodel_name>
修改models文件夹内容
上图中_name为将要在数据库中生成的对应表的表名,并在__init__文件中引入该文件
修改security文件夹下csv文件
__manifest__文件中添加csv文件
浏览器访问localhost:8069
搜索自定义模块名并安装
视图文件编写
- views文件夹下创建xml文件
<record id="estate_property_tree_view" model="ir.ui.view">
<field name="name">房地产广告</field>
<field name="model">estate.property</field>
<field name="arch" type="xml">
<tree>
<!--name:模型中的属性名 string:表头显示内容-->
<field name="name" string="标题"/>
<field name="postcode" string="编码"/>
<field name="bedrooms" string="Bedrooms"/>
<field name="living_area" string="Living Area"/>
<field name="expected_price" string="Expected Price"/>
<field name="selling_price" string="Selling Price"/>
<field name="date_availability" string="Availability From"/>
</tree>
</field>
</record>
-
动作
# id 外部标识符 model 固定值 <record id="test_model_action" model="ir.actions.act_winodws"> # name 动作名称 <field name="name">Test action</field> # res_model 动作适用的模型 <field name="res_model">test.model</field> # view_mode 可用的视图 <field name="view_mode">tree,form</field> </record>
- 菜单
# id 外部标识符 action 动作的外部标识符 <menuitem id="test_model_menu_action" action="test_model_action"/>
-
Tree视图效果
-
form视图效果
-
Search视图效果
domain:过滤条件,格式固定
数据库表—ir.ui.view
name:视图名称
model:关联的模型
type:视图类型( 树型视图、表单视图、搜索视图等 )
arch:视图结构定义( 通常以XML格式存储,包括关于字段排列、显示逻辑、按钮等的信息 )
odoo中self.env()方法详解
view
name:视图名称
model:关联的模型
type:视图类型( 树型视图、表单视图、搜索视图等 )
arch:视图结构定义( 通常以XML格式存储,包括关于字段排列、显示逻辑、按钮等的信息 )