[英]Django dynamic nested model forms
假设我有以下模型,其中存在从Teacher
到Course
以及从Course
到Student
的 1:many 关系:
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
,这怎么可能呢? 我知道 ModelForm s,这将使为ModelForm
的单个实例构建一个基本表单变得相当微不足道,但是我如何创建一个表单或 forms 本质上将模型相互嵌套,并允许动态数量的Course
和Student
?
例如,在Teacher
表单中,有一个“添加课程”按钮,可以在该Teacher
下添加另一个Course
表单,这样输入的任何详细信息都会填充属于该Teacher
的Course
,然后对于每个Course
表单,是一个“添加学生”按钮,用于为属于该Course
的Student
添加Student
表单。 我怎样才能实现这种动态和嵌套的行为?
那么如果可以做这样一个表格,表格提交后回到Python这边,数据会怎么组织呢? 或者换句话说,什么将指示每个Student
属于哪个Course
?
你应该看看 Django ModelFormsets,它在那些情况下使用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.