Django динамические вложенные формы моделей
Предположим, у меня есть следующие модели, где существует отношение 1:много от Teacher к Course, а от Course к Student:
class Teacher(Model):
name = CharField(max_length=64)
degree = CharField(max_length=64)
class Course(Model):
title = CharField(max_length=64)
level = CharField(max_length=64)
teacher = ForeignKey(Teacher, on_delete=CASCADE)
class Student(Model):
name = CharField(max_length=64)
year = CharField(max_length=64)
course = ForeignKey(Course, on_delete=CASCADE)
Если я хочу иметь страницу "Регистрация учителя", где пользователь может ввести данные Teacher, а также добавить любое количество Course с соответствующими данными, и к каждому Course добавить любое количество Student, как это можно сделать? Я знаю о ModelForms, что сделает создание базовой формы для одного экземпляра модели довольно тривиальным, но как я могу создать форму или формы, которые по существу вложат модели друг в друга и позволят динамическое количество Course и Student?
Например, внутри формы Teacher есть кнопка "добавить курс", которая добавляет еще одну форму Course под эту форму Teacher, так что все введенные в нее данные заполняют форму Course, принадлежащую этой форме Teacher, а затем для каждой формы Course есть кнопка "добавить студента", которая добавляет форму Student для Student, принадлежащую этому Course. Как я могу реализовать это динамическое и вложенное поведение?
Тогда, если возможно сделать такую форму, обратно на стороне Python после отправки формы, как будут организованы данные? Или другими словами, что будет указывать, к какому Course относится каждый Student?
Вам стоит посмотреть на Django ModelFormsets, он используется в таких случаях