繁体   English   中英

Django 动态嵌套 model forms

[英]Django dynamic nested model forms

假设我有以下模型,其中存在从TeacherCourse以及从CourseStudent的 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 本质上将模型相互嵌套,并允许动态数量的CourseStudent

例如,在Teacher表单中,有一个“添加课程”按钮,可以在该Teacher下添加另一个Course表单,这样输入的任何详细信息都会填充属于该TeacherCourse ,然后对于每个Course表单,是一个“添加学生”按钮,用于为属于该CourseStudent添加Student表单。 我怎样才能实现这种动态和嵌套的行为?

那么如果可以做这样一个表格,表格提交后回到Python这边,数据会怎么组织呢? 或者换句话说,什么将指示每个Student属于哪个Course

你应该看看 Django ModelFormsets,它在那些情况下使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM