data底下放置一些预置数据的xml文件,此处appNumber.xml为调动申请的申请单号数据,只有在新建时没有填写单号,则会自动填充为年月日+四位,若创建时写了单号保存后又修改为空则不会自动填充。
eg:新建yter(新建单号为123保存且删除后不填充)和wert(未填写则自动填充)
noupdate="1"只有在安装的时候会执行data中的代码;
noupdate="0"或者没设置的话,安装升级的时候都会执行data中的代码
record标签来创建数据表中一行,有两个必填属性:id和model。对于 id 属性,即为外部ID,可以通过ref函数来调用,这里是单独的就随便起一个;model属性引用模型的_name属性。
这里的ir.sequence是odoo为我们提供了一个很好用的序列号生成工具,使用该工具只需要在数据文件中注册一条ir.sequence记录,在模型代码中就可以调用该序列。
field元素来填入数据库中列,这在所命名的模型中定义,在test_application表中中字段命名为app_number,所以这里写什么没关系
name-前端显示的名字
code - 调用生成编码的 Key,需保证唯一性
prefix - 前缀,可以是固定的字面量也可以是组合参数
padding - 序列递增的位数
这个目录底下放翻译文件,这个翻译文件在web界面的翻译那部分,选择自己的模块导出,并且命名只能为zh_CN.po,比如导出多了会自动命名为像zh_CN.po(1)或者别的这种都不可以
一些翻译,将中文翻译成英文,在字段定义时写成英文,通过这个文件可以在前端显示成中文。也可以在字段定义时加个string中文,加在视图字段的string也行。
模型(model):是模块(module)的一部分,是odoo的ORM的描述对象,它的工作是帮我们将内存中的对象反映为数据库中的关系数据,也就是会在数据库中创建对应的表
员工调动申请表
odoo的class继承了models.Model类,这个类名可以改成TestApplication,这里忘了改,跟员工信息表重名了,不过在这也不影响
_name:odoo类的唯一标识,系统将会为该模型建立数据库表名为test_application的数据表
_description:主要为描述信息
_rec_name:看下图,框出来的部分显示的内容,在form视图页,这里选择employee_name字段名是指显示为员工姓名,也可以设置为其他比如显示编号什么的,不设置的话会默认显示成数字
下面是一些字段定义:
1.char
2.many2one和one2many
required:是否必输,true是必须输入,默认false
string:字段显示
comodel_name:关联test_employee员工信息表,多个调动申请表可以只对应一个员工,也就是说一个员工可以有多个调动申请,因此在test_employee中会有一个对应的application字段是one2many,如下:
comodel_name关联调动申请表
inverse_name关联字段为员工姓名,在comodel_name 中对应的Many2one字段,只存在于one2many中,不加这个属性的话会报错get_id = (lambda rec: rec.id) if comodel._fields[inverse].type == ‘many2one’ else int KeyError: None。在员工表的form视图底下会显示这个员工的所有调动申请
3.Selection下拉列表,枚举类型,选择字段。
4.Date:短日期,年月日,在view层以日历选择框显示。
defalut:默认值,默认为当天日期
required:True只读
5.Text:文本型,多用于多行文本框,可以用widget属性为它添加样式。
_sql_constraints:数据库约束
员工信息表
后面还没写完。。。相关参考https://www.cnblogs.com/ljwTiey/p/11486885.html
https://www.cnblogs.com/ygj0930/p/10826099.html
http://www.manongjc.com/detail/23-frlisnrimkiqabv.html
https://www.cnblogs.com/ygj0930/p/10826382.html