odoo初学者代码总结–hr.contract(6)

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(后续会讲到,可以先参考wanan7model注意事项)
  • 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值