hr.contract/(6)
提前声明:本人是odoo萌新,python也只有基础,欢迎大神指点,有所不足之处还请见谅
此为本萌新学习归纳所用,毕竟有输出才有动力,废话不多说,咱们开始吧:
wage = fields.Monetary('Wage', required=True, tracking=True, help="Employee's monthly gross wage.")
- Monetary价格(和精度位数相关)
- required=True(不可以为空)
- tracking=True(生成一个跟踪变化的记录)
- help(为用户提示信息)
这些东西都是比较基础的,需要大家反复的看,写,用,见的多了,也就记住了,并没有强制要求大家熟记,这方面只是一个水到渠成的过程.
advantages = fields.Text('Advantages')
notes = fields.Text('Notes')
- Char/Text:两个都是文本类型,所承载的字符串长度不一
这里给大家说明一下,普通字段,会省略string="学生学号"的string,所以我们经常看到如上的代码
Many2one这类关联字段,如果没有明确标识,第一个是他要关联的表,第二给才是他的string,所以我们可以看到
resource_calendar_id = fields.Many2one(
'resource.calendar', 'Working Schedule',
default=lambda self: self.env.company.resource_calendar_id.id, copy=False,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
接着往下看:
state = fields.Selection([
('draft', 'New'),
('open', 'Running'),
('close', 'Expired'),
('cancel', 'Cancelled')
], string='Status', group_expand='_expand_states', copy=False,
tracking=True, help='Status of the contract', default='draft')
- Selection(常值单选)
- 用中括号包围的元组,就是他的key与value(key是调用,保存在数据库的值,value是显示给用户看的值)
- string=‘Status’(界面用户显示)
- group_expand(后续会讲到,可以先参考wanan7的model注意事项)
- copy=False(不可复制)
- tracking=True(生成一个跟踪变化的记录)
- help(为用户提示信息)
- default=‘draft’(默认值)
我们继续往下看:
company_id = fields.Many2one('res.company', default=lambda self: self.env.company, required=True)
- Many2one(关联字段,多对一)
- res.company(被关联的表)
- default(默认值)
- required=True不可为空
其中default=lambda self: self.env.company表示默认值是当前环境下的公司
接下来是一段注解:
"""
kanban_state:
* draft + green = "Incoming" state (will be set as Open once the contract has started)
* open + red = "Pending" state (will be set as Closed once the contract has ended)
* red = Shows a warning on the employees kanban view
"""
然后我们继续:
kanban_state = fields.Selection([
('normal', 'Grey'),
('done', 'Green'),
('blocked', 'Red')
], string='Kanban State', default='normal', tracking=True, copy=False)
- Selection(常值单选)
- 用中括号包围的元组,就是他的key与value(key是调用,保存在数据库的值,value是显示给用户看的值)
- string=‘Kanban State’(界面用户显示)
- default=‘normal’(默认值)
- tracking=True(生成一个跟踪变化的记录)
- copy=False(不可以复制内容)
我们发现,随着阅读代码的数量增多,我们会遇到越来越多重复的字段及属性,前面我们也提到过,大家可以回去翻阅,当然不想看的,我也尽量为大家做好标注.随着大家对odoo的熟悉,相信过不了多久,看到字段就能立刻知道他的用途.自己开发起来,也会更加的得心应手.
currency_id = fields.Many2one(string="Currency", related='company_id.currency_id', readonly=True)
- Many2one(关联字多,多对一)
- string="Currency"
- related=‘company_id.currency_id’(关系字段,还记得小红小黑和棒棒糖的故事吗?这个company_id就是在那里定义的赋值的)
- readonly=True(设置字段只读)
permit_no = fields.Char('Work Permit No', related="employee_id.permit_no", readonly=False)
- Char(文本字段)
- ’Work Permit No’
- readonly=False(可以编辑)
- related=“employee_id.permit_no”(employee_id也可以在之前赋值定义的时候找的到哦,给大家把源码摘过来)
employee_id = fields.Many2one('hr.employee', string='Employee', tracking=True, domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
这是我们之前讲到过的
我们继续一鼓作气:
visa_no = fields.Char('Visa No', related="employee_id.visa_no", readonly=False)
- employee_id(和刚刚讲的代码一样,把关联字段的数据的某个字段的值取出)
visa_expire = fields.Date('Visa Expire Date', related="employee_id.visa_expire", readonly=False)
- Date(日期)
- related=“employee_id.visa_expire”(不再赘述)
- readonly=False(字段可编辑)
hr_responsible_id = fields.Many2one('res.users', 'HR Responsible', tracking=True,
help='Person responsible for validating the employee\'s contracts.')
- Many2one(关联字段,多对一)
- ’res.users’(所关联的表)
- ’HR Responsible’(不赘述)
- tracking=True,(生成一个跟踪变化的记录)
- help=(不赘述)
calendar_mismatch = fields.Boolean(compute='_compute_calendar_mismatch')
- Boolean(布尔值)
- compute(计算方法,先不用了解,后续会讲到)
ok,我们把hr.contract文件里的字段讲完了(不知道这样讲对不对QAQ),下一步就是将阅读过程中的字段,属性等做一个简单的归纳总结,方便大家忘记的时候翻阅查看.如在后续读到了新的类型,字段与属性,本小白也会及时更新的.传输门<小白字段参考手册>.后续我们会接着代码继续阅读下去,但毕竟我们是小白,一步步夯实,才能更快的前进.今日份就到这里.
感谢大家,下篇见OuO