(26)odoo中的序列运用
* 模块中增加序列
__openerp__.py :
...
'data': [
'product_data.xml',
],
...
------
product_data.xml:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="sequence_type" model="ir.sequence.type">
<field name="name">Sequence</field>
<field name="code">product.internal.code</field>
</record>
<record id="sequence" model="ir.sequence">
<field name="name">product</field>
<field name="code">product.internal.code</field>
<field name="padding">4</field>
</record>
</data>
</openerp>
# model="ir.sequence.type" 序列类型 设置->技术->序列与标识符->序列编码 找到
# name 类型名称
# code 类型编码 唯一不重名
# model="ir.sequence" 序列 设置->技术->序列与标识符->序列 找到
# name 序列名称
# code 序列用到的编码
# padding 多少位数字
-----
product.py :
@api.model
def create(self, vals):
if (
not vals.get('internal_code', False) and
not self._context.get('default_internal_code', False)):
vals['internal_code'] = self.env[
'ir.sequence'].get('product.internal.code') or '/'
return super(product, self).create(vals)
# 上面做了这么多就是为 self.env['ir.sequence'].get('product.internal.code')
这句做基础
_sql_constraints = {
('internal_code_uniq', 'unique(internal_code)',
'Internal Code mast be unique!')
}