odoo 创建一条记录的时候自动增加一个序列号

摘要:
您也可以使用以下方法最终创建自启动酸。创建记录时,会触发python代码param=#。保存时,根据record.ID中当前记录的ID值更新表的cwbh字段env.cr.execute。在ODO的自动酸开发模式下保存条件时,保存后将触发条件。因此,可以根据新生成的记录ID next_by_Code直接更新此记录中的字段env['ir.sequence']。Code将根据步骤1中的设置自动生成序列。在设置菜单中,删除self。我们还推荐Siyuan老师的ODO学习网站

一步:

在odoo开发者模式,进入配置设置添加一个序列号,sequence ocde 这个地方的值要与代码里相同

  odoo 创建一条记录的时候自动增加一个序列号第1张

 开始是在代码里这样设置的,cwbh是财务编号的字段需求是每次新增自动加1 

cwbh = fields.Char(string='Number', required=True, copy=False, readyonly= True default=lambda self:self.env['ir.sequence'].next_by_code('dycrm.cwbh'))

重新启动代码可以执行但是有个bug就是启动的时候他会增加一次,保存的时候会增加一次。后来经过思远老师的指点发现,把
readyonly= False 就好了。但是不能让用户修改满足不了需求,于是想在创建代码的时候自动增加sequence序列
    # def create(self, vals):
    #    if not vals.get('cwbh'):
    #         vals['cwbh'] = self.env['ir.sequence'].next_by_code('dycrm.cwbh')
    #    return super(dycrm, self).create(vals)

但是在保存的时候就会报一个错误,是因为我的类名首字母Dycrm没有大写造成的可以参考源码比较蹊跷。现在发现了。也可以用下面的方法

odoo 创建一条记录的时候自动增加一个序列号第2张

最后新建了一个自启动aciton,创建一条记录的时候触发python代码

odoo 创建一条记录的时候自动增加一个序列号第3张

odoo 创建一条记录的时候自动增加一个序列号第4张
param = (env['ir.sequence'].next_by_code('dycrm.cwbh'),record.id)
#保存的时候根据record.id当前记录的id值,更新表的cwbh字段
env.cr.execute("update dycrm_main set cwbh=%s where id=%s"% param)

在odoo 开发模式auto aciton 保存条件的时候,是先保存后触发条件,所以可以直接根据新生产的记录id更新这条记录里的某个字段

env['ir.sequence'].next_by_code('dycrm.cwbh')会自动生成一个序列根据第一步里的设置,在设置菜单里,要去掉self。

好了就这么多,有用方便的话,欢迎支付宝打赏哦。

 odoo 创建一条记录的时候自动增加一个序列号第5张

本文为原创转载请注明。另推荐思远老师的odoo学习网站

 





免责声明:文章转载自《odoo 创建一条记录的时候自动增加一个序列号》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Nginx日志运维笔记15 单行处理函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Odoo 接口

1. 很多人还是习惯使用restful格式进行接口操作,但odoo已默认jsonrpc,所以需要专门写一个装饰器 def json_response(func): """返回去除封装的JSON""" @wraps(func) def decorate(*args, **kwargs): request.__raw_j...

odoo开发笔记:Server+Action服务器动作自动触发执行

       Odoo的市场定位是SME(中小型企业),这个市场的ERP产品,多如牛毛,产品各具特色。不过,Odoo的自动化处理机制,可以睥睨天下,无人能及。包括一些大型国产软件,如用友、金蝶也不具备如此强大的自动化业务处理功能。Odoo的业务自动化机制,可以非常容易地扩充ERP系统功能,非常容易地让业务工作自动化。 Odoo自动化动作 如下图,增...

Odoo 模型之间的关系 笔记

Many2one 关系需要两个参数:关联模块(设置对应模块的关键参数)和展示字符。它会在数据库表中创建一个拥有外键的字段去关联数据库表。 这种类型的字段,也可以使用一些其它的参数: ondelete 在关联的记录被删除时,将会触发。默认值是null,也就是说,当关联的记录被删除时,它将被置空。其它值为restrict,当记录被关联时,禁止删除,cascad...

odoo使用笔记

1:active字段为False的记录如何显示: odoo中默认,active字段为False的记录上不显示的。但是如果在创建时没有勾选active,之后想要显示它,那就需要吧active修改为True。 然而它现在是不可见的,怎么修改? 通过odoo提供的搜索视图来实现: 自定义筛选——active字段——为假 即可把active为False的记录显示出...

【笔记】Docker部署Odoo

一,制作一个自己的odoo镜像odoo:yto 1,下载一个odoo10的镜像 docker pull odoo:10.0 2,按照自己的意愿修改里面的内容 docker run -it -u root --name odoo-yto odoo:10.0 /bin/bash  安装必要的软件并用vim修改内容 apt-get update apt-get...

创建odoo数据库时出现错误原因

安装完odoo 8.0后创建数据库时出现如下错误信息: Odoo Odoo Server Error Traceback (most recent call last): File "D:Odoosourceopenerphttp.py", line 537, in _handle_exception return super(JsonRe...