odoo 设置自增序列

在创建用户、订单时,常常需要使用到序列来自动为该记录添加编号。
在odoo中,可以通过使用 ir.sequence 模块来生成序列。

1、建模型

class Users(models.Model):
    _name = "test.user"
    _description = "用户"
    
    number = fields.Char(string='用户编号', required=True,
    copy=False, readonly=True, default="-",store=True)

2、写序列规则


    
        
        
            用户编号规则
            test.user
            YH
            5
            
        

    
name:此规则的名称,随便写
code:调用生成编码的key,必须唯一,通常使用模块名
prefix:加在生成的数字前面。例如YH,第一位用户:YH0001
padding:填充几位数字在prefix的后面
noupdate=“1”:这样每次升级或安装不会被重新赋值

3、重写create方法

将字段设为只读,点击保存后再生成序列号
@api.model
    def create(self, vals_list):
        # 生成自增序列号
        sequence = self.env['ir.sequence'].next_by_code("test.user")
        vals_list['number'] = sequence
        user = super(Users, self).create(vals_list)
        return user

演示效果:
odoo 设置自增序列_第1张图片

你可能感兴趣的:(odoo)