簡體   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