如何基于 Many2one 字段创建动态序列,而不是固定值。
例如,学生注册号基于学位,批次和年份。 如何使用Odoo 10中的序列实现此功能?
答案 0 :(得分:1)
您可以按照以下步骤制作动态序列。如果您提供了有关代码的更多详细信息,我会更准确,但我认为您理解管理目标的想法。
在 data 文件夹中创建 sequences.xml 文件,并将该文件添加到__openerp__.py
:
<record id="seq_type_student_registration_number" model="ir.sequence.type">
<field name="name">Student registration number</field>
<field name="code">student.registration.number</field>
</record>
<record id="seq_student_registration_number" model="ir.sequence">
<field name="name">Student registration number</field>
<field name="code">student.registration.number</field>
<field name="prefix">DEGREE/BATCH/%(y)s</field>
<field name="padding">3</field>
</record>
在* .py文件中,从模型继承以修改其create
方法:
@api.model
def create(self, vals):
record = super(YourModel, self).create(vals)
sequence = self.env['ir.sequence'].next_by_code(
'student.registration.number') or '/'
sequence = sequence.\
replace('DEGREE', record.degree_id.name).\
replace('BATCH', record.batch_id.name)
record.write({
'your_field': sequence,
})