[英]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.