odoo笔记第三期

22 篇文章 6 订阅

序列

    @api.model
    def create(self, vals):
        vals['yhf'] = self.env['ir.sequence'].next_by_code('模块的_name')
        return super(模块的类名,self).create(vals)
 <record id="xxx" model="ir.sequence">
            <field name="name">name of this sequence</field>
            <field name="code">zerone.book</field>
            <field name="prefix">PPA%(year)s%(month)s%(day)s</field>
            <field name="padding">5</field>
            <field name="company_id" eval="False"/>
        </record>

name 序列规则得名称,可自定义****code 序列规则得编码,要求最好唯一,使用模块.表名来命确保唯一

prefix 序号编码的前缀

  • 年份:%(year)s

  • 月份:%(month)s

  • 日: %(day)s

padding 填充数据的位数

日期

短日期

fields.Date.today()

长日期

fields.Datetime.now()

时间与字符串转换

日期转字符串

fields.Date.to_string(date)
fields.Datetime.to_string(date)

字符串转日期

fields.Date.to_date(string)
fields.Datetime.to_date(string)

格式化日期

year = fields.Date.from_string(date).strftime('%Y')

时间运算

1、往后加8个小时

datetime.datetime.now() + timedelta(hours=8)
fields.datetime.today() + timedelta(hours=8)
• 1
• 2

2、往后加8天

datetime.datetime.now() + timedelta(days=8)
fields.date.today() + timedelta(days=8)

3、往后加8年

datetime.datetime.now() + relativedelta(years=8)
fields.date.today() + relativedelta(years=8)

4、往后追8月

datetime.datetime.now() + relativedelta(months=8)
fields.date.today() + relativedelta(months=8)

关于月时间的运算

1、取出当前月的第一天和最后一天

import calendar
import datetime
#current_time临时变量,取出当前时间
current_time = datetime.datetime.now()
#调用monthrange(年份,月份),返回一个元组,例如(2,30)
#第一个元素,表示此月第一天周几,周末到周六(0-6)
#第二个元素,表示此月一共有多少天
monthRange = calendar.monthrange(current_time.year, current_time.month)
#取出当前月的第一天
date_from = datetime.date(current_time.year,current_time.month,day=1)
#取出当前月的最后一天
date_to = datetime.date(current_time.year,current_time.month,day=monthRange[1])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值