0

Here is my function 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

My problem is when I select a record and I click on the button set_student_level, the insertion works in the database. However, when I select multiple records, I have an error (ValueError: Expected singleton: school.partner.school (15, 68)).

Vinh VO
  • 705
  • 1
  • 7
  • 28
PseudoWithK
  • 321
  • 1
  • 19

1 Answers1

0

Here update_student_ids will be a set of records. so you should replace update_student_ids with rec in for loop.

eg:

for rec in update_student_ids:
    partner = rec.partner_id.id
...
Hilar AK
  • 1,655
  • 13
  • 25
  • Thanks, The problem is not completely fix. Now when I select two recordings, and I click on the button, I end up with 6 records instead of 4. Can I be a loop too much? – PseudoWithK Jun 26 '18 at 07:12
  • I have fixed my problem. I go on resolving. I delete the line "for student in record.student_ids:" in my code. Thank you – PseudoWithK Jun 26 '18 at 07:19