Tagged: Python

Odoo 使用 ir.sequence 生成序列号

在Odoo里面,默认提供了ir.sequence这样一个模块,他的作用就是一个序号生成器。在这次的项目中刚好用到了,这里就记录一下。

创建序号

打开 data/data.xml 写入如下代码:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
   <data noupdate="True">
      <record id="contract_number" model="ir.sequence">
         <field name="name">预算编号</field>
         <field name="code">budget.number</field>
         <field name="prefix">HT%(year)s%(month)s%(day)s</field>
         <field name="suffix">号</field>
         <field name="padding">1</field>
      </record>
   </data>
</odoo>

参数说明:

  • name - 名字,随便叫什么都行
  • code - 调用生成编码的 Key,需保证唯一性
  • prefix - 前缀,可以是固定的字面量也可以是组合参数
  • padding - 序列递增的位数

调用

data/data.xml加入到__manifest__.py的data列表中。

budget_num = fields.Char(string=u'预算编号', copy=False, readonly=True, default=lambda x: _('New'))

@api.model
def create(self, vals):
	""" 保存方法重写 """
	if not vals.get('name', False) or vals['name'] == _('New'):
		vals['budget_num'] = self.env['ir.sequence'].next_by_code('budget.number')
	return super(Budget, self).create(vals)

Python 3 环境搭建

Python 3.6 安装

# 系统更新
yum -y update

# 安装yum补充程序和插件
yum -y install yum-utils epel-release

# Centos开发工具包
yum -y groupinstall development

# 安装IUS(Inline with Upstream Stable)
# https://ius.io/GettingStarted/
yum -y install https://centos7.iuscommunity.org/ius-release.rpm

# 安装Python3.6.3
yum search python3.6 # 搜索最新python
yum -y install python36u # 安装
python3.6 -V # 检查安装是否成功

#pip安装
yum search pip | grep python36u # 搜索支持的pip
yum -y install python36u-pip # 安装

# python开发库
yum -y install python36u-devel

Python 虚拟环境

mkdir environments
cd environments

# 创建环境
python3.6 -m venv odoo

# 激活环境
source ~/environments/odoo/bin/activate

# 退出环境
deactivate

注:在虚拟环境中,你可以使用命令python来代替python3.6,pip来替换pip3.6。如果在环境外的机器上使用Python 3,则需要专门使用python3.6和pip3.6命令。