为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。每当添加一个新的test表单,num号自增1。

注意

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

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

含义 代码 例子
年代 %(year)s 2020
年份 %(y)s 20
%(month)s 05
%(day)s 01
-    
某年某日 %(doy)s

参见:

https://blog.csdn.net/z583706/article/details/106425588

猜你喜欢

转载自blog.csdn.net/figosoar/article/details/113637623
今日推荐