Это просто, вам просто нужно начать его кодировать.Создайте модуль с моделями отношений и полей.В модели ProgramAdmission
добавьте поле Many2one к модели Program
, а другое - к модели Course
.Если вы отмените форму при создании новой записи, в вашей БД ничего не будет сохранено, но если вы нажмете кнопку «Сохранить», она вызовет метод create
для новых записей и методы write
для существующих.Переопределите метод create, чтобы иметь возможность динамически создавать новую запись модели CourseEnrollment
и связать ее с записью ProgramAdmission
, которую нужно создать, сохранив ее в новом поле Many2one в той же модели ProgramAdmission
.
Чтобы прояснить, что я имею в виду:
from odoo import models, fields, api
class Program(models.Model):
_name = 'school.program'
name = fields.Char()
class Course(models.Model):
_name = 'school.course'
name = fields.Char()
class ProgramAdmission(models.Model):
_name = 'school.program.admission'
course_id = fields.Many2one('school.course')
program_id = fields.Many2one('school.program')
enrollment_id = fields.Many2one('school.course.enrollment')
@api.model
def create(self, vals):
enrollment_id = self.env['school.course.enrollment'].create({
'course_id': vals['course_id'],
'program_id': vals['program_id']
})
vals['enrollment_id'] = enrollment_id.id
return super(ProgramAdmission, self).create(vals)
class CourseEnrollment(models.Model):
_name = 'school.course.enrollment'
course_id = fields.Many2one('school.course')
program_id = fields.Many2one('school.program')