我想在我的销售订单中生成序列为a/b/c
,其中a
是many2one字段的序号,b
是当前年份,c
是客户参考。我编码是这样的。但是这个价值不会得到(除了年份)因为创造fn左右我认为
def create(self, vals):
seq = str(self.projects_id.sequence)
year = str(datetime.now().year-2000)
ref = str(self.client_order_ref)
if vals.get('name', 'New') == 'New':
vals['name'] = seq+'/'+year+'/'+ref
return super(sale_order,self).create(vals)
任何想法?
答案 0 :(得分:2)
这是我朋友的残酷错误!!
您正在使用CREATE方法编写代码,并且您不会在自己中获取任何记录/记录集,
因此您无法访问
等字段self.projects_id.sequence
所有值都在vals字典中。
def create(self, vals):
project_id = vals.get('projects_id',False)
project_obj = self.env['project.project']
seq = str(project_obj.browse(project_id).sequence)
year= str(datetime.now().year-2000)
ref = vals.get('client_order_ref','')
if vals.get('name', 'New') == 'New':
vals['name'] = seq+'/'+year+'/'+ref
return super(sale_order,self).create(vals)
****使用项目顺序不是个好主意!因为它们不是唯一的。你有时可能会得到重复序列。***