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

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

  • 2026-09-02 18:52:28
中篇Python(ODOO)篇 第三章 ODOO项目开发(三)添加基础部分模块 4.驾照类型
目前驾照类型全国统一,所以我们也是只需要载入默认数据,并且让使用者只能看。
更多驾照见驾照背面。

驾照类型名

备注

A1

大型客车和A3、B1、B2

A2

牵引车和B1、B2、M

A3

城市公交车和C1

B1

中型客车和C1、M

B2

大型货车和C1、M

新增数据模型

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

设置访问权限

在security目录下的ir.model.access.csv新增一行权限记录。
access_nebula_driving_licence_type,nebula.driving.licence.type,model_nebula_driving_licence_type,group_peijia_manager,1,0,0,0

创建视图层

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

创建默认数据

在data目录新增driving_licence_type_data.xml文件,用来存放职业类默认数据。部分参考代码如下:
<recordid="nebula_driving_licence_type_c1"model="nebula.driving.licence.type">    <fieldname="name">C1</field>    <fieldname="name_type">小型汽车和C2、C3</field>    <fieldname="active">TRUE</field></record><recordid="nebula_driving_licence_type_c2"model="nebula.driving.licence.type">    <fieldname="name">C2</field>    <fieldname="name_type">小型自动挡汽车</field>    <fieldname="active">TRUE</field></record><recordid="nebula_driving_licence_type_c3"model="nebula.driving.licence.type">    <fieldname="name">C3</field>    <fieldname="name_type">低速载货汽车和C4</field>    <fieldname="active">TRUE</field></record><recordid="nebula_driving_licence_type_c4"model="nebula.driving.licence.type">    <fieldname="name">C4</field>    <fieldname="name_type">三轮汽车</field>    <fieldname="active">TRUE</field></record>
我们在__manifest__.py文件中data段最后添加该文件位置,以方便调用。
格式如下:data/driving_licence_type_data.xml
截图:

界面展示

列表效果:
表单效果:

最新文章

随机文章