当前位置:首页>python>中篇Python(ODOO)篇 第三章 ODOO项目开发(三)添加基础部分模块 3.职业类型

中篇Python(ODOO)篇 第三章 ODOO项目开发(三)添加基础部分模块 3.职业类型

  • 2026-10-11 08:36:16
中篇Python(ODOO)篇 第三章 ODOO项目开发(三)添加基础部分模块 3.职业类型
原始需求:

职业类型

备注

销售管理

销售人员

商务及销售行政

新增数据模型

models目录新建metier_type.py数据模型文件,代码如下:
# -*- coding: utf-8 -*-from odoo import fields, modelsclass MetierType(models.Model):    _name = "nebula.metier.type"    _description = "职业类型"    _order = 'name'    name = fields.Char('职业类型', size=30, required=True, index=True)    active = fields.Boolean(default=True, string='是否启用')    note = fields.Text('备注')    _sql_constraints = [        ('check_unique_name', 'unique(name)', '不允许同名职业类型')]
将该文件名(metier_type)添加到models目录下__init__.py的auto_type后面,前面以逗号分割,如下所示。
from . import car_type, auto_type, metier_type

设置访问权限

在security目录下的ir.model.access.csv新增一行权限记录。
access_nebula_metier_type,nebula.metier.type,model_nebula_metier_type,group_peijia_manager,1,1,1,1

创建视图层

在views目录新增metier_type_views.xml文件,因无特殊要求,所以用默认方式展示即可,内容如下:
<?xml version="1.0" encoding="utf-8"?><odoo>    <act_windowid="peijia.action_metier_type_views"name="职业类型"    res_model="nebula.metier.type" view_mode="tree,form" /></odoo>
修改peijia目录下__manifest__.py文件中data段,在views/car_type_views.xml前新增views/metier_type_views.xml文件名。
在peijia->views目录下car_views.xml文件,前添加菜单指向职业类型子模块,代码:
<menuitem id="menu_metier_views" name="职业类型"          parent="menu_peijia_base_data" sequence="120"          action="peijia.action_metier_type_views"/>
截图:

创建默认数据

在data目录新增metier_type_data.xml文件,用来存放职业类默认数据。代码如下:
<?xml version="1.0" encoding="utf-8"?><odoo>    <datanoupdate="1">        <!-- 职业类型默认数据-->        <recordid="nebula_metier_1"model="nebula.metier.type">            <fieldname="name">销售管理</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_2"model="nebula.metier.type">            <fieldname="name">销售人员</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_3"model="nebula.metier.type">            <fieldname="name">商务及销售行政</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_4"model="nebula.metier.type">            <fieldname="name">客服及技术支持</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_5"model="nebula.metier.type">            <fieldname="name">市场/营销</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_6"model="nebula.metier.type">            <fieldname="name">经营管理</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_7"model="nebula.metier.type">            <fieldname="name">行政/后勤</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_8"model="nebula.metier.type">            <fieldname="name">人力资源</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_9"model="nebula.metier.type">            <fieldname="name">计算机硬件</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_10"model="nebula.metier.type">            <fieldname="name">计算机软件</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_11"model="nebula.metier.type">            <fieldname="name">互联网开发及应用</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_12"model="nebula.metier.type">            <fieldname="name">IT-管理</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_13"model="nebula.metier.type">            <fieldname="name">IT-品管、技术支持</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_14"model="nebula.metier.type">            <fieldname="name">通信技术</field>            <fieldname="active">TRUE</field>        </record>        <recordid="nebula_metier_15"model="nebula.metier.type">            <fieldname="name">其他</field>            <fieldname="active">TRUE</field>        </record>    </data></odoo>
我们在__manifest__.py文件中data段最后添加该文件位置,以方便调用。
格式如下:data/metier_type_data.xml
截图如下:
全部修改完成后,重启odoo服务,再将应用中陪驾模块升级,汽车陪驾模块的基础资料下拉菜单里面新增了职业类型菜单。

界面展示

列表效果:
表单效果:

最新文章

随机文章