使用 odoo 10 创建多个记录

create multiple records with odoo 10

这是我的函数 create():

api.model
def set_student_level(self):
    for record in self:
        if record.student_ids:
            for student in record.student_ids:
                update_student_ids = self.env['ecole.partner.school'].browse(self.env.context.get('active_ids'))
                if update_student_ids:
                    for rec in update_student_ids:
                        partner = update_student_ids.partner_id.id
                        school_year = update_student_ids.school_year.id
                        school_name = update_student_ids.school_name.id
                        school_level = update_student_ids.school_level.id
                        half_pension = update_student_ids.half_pension
                        half_pension_name = update_student_ids.half_pension_name.id
                        half_pension_begin_date = update_student_ids.half_pension_begin_date
                        half_pension_end_date = update_student_ids.half_pension_end_date
                        nursery = update_student_ids.nursery
                        nursery_name = update_student_ids.nursery_name.id
                        nursery_begin_date = update_student_ids.nursery_begin_date
                        nursery_end_date = update_student_ids.nursery_end_date

                    #Ecriture en dur dans la BDD
                        vals = {'partner_id': partner,
                                'school_year': school_year,
                                'school_name': school_name,
                                'school_level': school_level,
                                'half_pension': half_pension,
                                'half_pension_name': half_pension_name,
                                'half_pension_begin_date': half_pension_begin_date,
                                'half_pension_end_date': half_pension_end_date,
                                'nursery': nursery,
                                'nursery_name': nursery_name,
                                'nursery_begin_date': nursery_begin_date,
                                'nursery_end_date': nursery_end_date}

                        res = update_student_ids.create(vals)

                    return res

我的问题是当我 select 一条记录并单击按钮 set_student_level 时,插入在数据库中起作用。但是,当我 select 多条记录时,我有一个错误 (ValueError: Expected singleton: school.partner.school (15, 68)).

此处update_student_ids将是一组记录。所以你应该在for循环中用rec替换update_student_ids

例如:

for rec in update_student_ids:
    partner = rec.partner_id.id
...