Supongamos que tengo los siguientes modelos, donde hay una relación 1: muchos de Teacher a Course y de Course a 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) Si quiero tener una página de "maestro de registro", donde un usuario puede ingresar los detalles de un Teacher , y también poder agregar cualquier número de Course con sus detalles correspondientes, y a cada Course agregar cualquier número de Student , ¿Como se puede hacer esto? ModelForm s, lo que haría que la construcción de un formulario básico para una sola instancia de un modelo fuera bastante trivial, pero ¿cómo puedo crear un formulario o formularios que esencialmente aniden los modelos entre sí y permitan un número dinámico de Course y Student ?
Por ejemplo, dentro del formulario del Teacher , hay un botón "agregar curso", que agrega otro formulario Course debajo de ese Teacher , de modo que cualquier detalle ingresado en él llena un Course que pertenece a ese Teacher , y luego para cada formulario de Course , hay es un botón "agregar estudiante" que agrega un formulario de Student para un Student que pertenece a ese Course . ¿Cómo puedo implementar este comportamiento dinámico y anidado?
Entonces, si es posible hacer un formulario de este tipo, de vuelta en el lado de Python después de enviar el formulario, ¿cómo se organizarán los datos? O dicho de otro modo, ¿qué indicará a qué Course pertenece cada Student ?
Deberías mirar Django ModelFormsets, se usa en esos casos