Python 如何基于多个字段创建动态序列?

Python 如何基于多个字段创建动态序列?,python,xml,python-2.7,odoo,odoo-10,Python,Xml,Python 2.7,Odoo,Odoo 10,如何基于多个字段而不是固定值创建动态序列 例如,基于学位、批次和年份的学生注册号。 如何使用Odoo 10中的序列实现此功能?您可以在接下来的步骤中创建一个动态序列。如果您提供更多关于代码的详细信息,我会更准确,但我认为您会理解管理您的目的的想法 在data文件夹中创建sequences.xml文件,并将该文件添加到\uu openerp\uuu.py: <record id="seq_type_student_registration_number" model="ir.sequence

如何基于多个字段而不是固定值创建动态序列

例如,基于学位、批次和年份的学生注册号。
如何使用Odoo 10中的序列实现此功能?

您可以在接下来的步骤中创建一个动态序列。如果您提供更多关于代码的详细信息,我会更准确,但我认为您会理解管理您的目的的想法

在data文件夹中创建sequences.xml文件,并将该文件添加到
\uu openerp\uuu.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>

在获取下一个序列之前,您可以更新
前缀
字段number@majid我的回答对您有帮助吗?此代码创建了一个错误:@api.returns('self',lambda value:value.id)AttributeError:'NoneType'对象没有属性'id'@majid该错误似乎位于代码的其他部分,请务必对我在此处编写的整个
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,
    })