能够这么理解,我有一个产品序号,编码的前缀是SOP,后缀是0001~9999的序号,没生成一个产品就自动流水加一,序列号不会重复,odoo中的ir.sequence这个模型提供了这个方法。
python
创建一个XML,并记得在__mainfest__.py中导入api
<?xml version="1.0" encoding="utf-8"?> <odoo> <data noupdate="1"> <!-- Sequences for sale.order --> <record id="my_sale_sequence" model="ir.sequence"> <field name="name">Sales Order</field> <field name="code">my_sale.sale_order</field> <field name="prefix">SO</field> <field name="padding">3</field> <field name="company_id" eval="False"/> </record> </data> </odoo>
name 序列规则得名称,可自定义
code 序列规则得编码,要求最好惟一,使用模块.表名来命确保惟一
prefix 序号编码的前缀
padding 填充数据的位数
编码
@api.model def create(self, vals): vals['name'] = self.env['ir.sequence'].next_by_code('wf_sale.sale_order') return super(SaleOrder,self).create(vals)