假设项目名称为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 |
参见: