(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!')
    }

原文地址:https://www.cnblogs.com/toby2chen/p/5217707.html