为odoo表单设置序号自加

假设项目名称为project,表单所在的model名称为test,所需设置的序号为num。


在test.py中添加函数

    @api.model
    def _create_sequence(self, vals):
        vals['num'] = self.env['ir.sequence'].next_by_code(
            'project.test')# or '/'
        return vals

    @api.model
    def create(self, vals):
        vals = self._create_sequence(vals) #新增记录时,自动创建序号
        res = super().create(vals)
        return res

在data目录下,添加名称为project_sequence的文件。并在项目__manifest__.xml中添加声明。

'data/project_sequence.xml',

在project_sequence.xml文件中添加代码

<?xml version="1.0" encoding="utf-8"?>

<odoo noupdate="1">

    <record id="seq_test" model="ir.sequence">
        <field name="name">Test</field>
        <field name="code">project.test</field>
        <field name="prefix">T%(range_year)s</field>
        <field name="padding">4</field>
        <field name="company_id" eval="False"/>
    </record>

</odoo>

自此,为表单test的num添加了自增1。padding表示末尾添加了4位数字。每当添加一个新的test表单,num号自增1。

如果需要在List 倒序显示,则只需要在class test定义下面加上 “_order = 'num desc'”就行了。

注意

更改<prefix>后,需要uninstall当前应用,并重新install应用,样式才能生效。

关于prefix可用使用很多,常用的有:

含义代码例子
年代%(year)s2020
年份%(y)s20
%(month)s05
%(day)s01
-
某年某日%(doy)s

参见:

odoo-004 序列号的前缀 后缀_Sapphire~的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值