让我说我有模特教室:
class Classroom(models.Model):
name = models.CharField(max_length=255,)
number_of_students = models.IntegerField()
每个教室可以有不同数量的学生。我想有班级学生与课堂模式相关
class Students(models.Model):
student_name = models.CharField(max_length=255)
student_gender = models.CharField(max_length=255)
classroom = models.ForeignKey(Classroom)
我希望当我输入学生人数以获得每个学生的新表格时。我怎么能这样做?
答案 0 :(得分:0)
让number_of_students
成为教室的一个属性,只需要一个简单的查询来检索它,就不需要存储任意数字
@property
def number_of_students(self):
return self.students_set.count()
答案 1 :(得分:0)
我猜你正在寻找的是动态表单生成。几点:
1)执行此操作的最佳方式(IMO)是使用一些JavaScript库来动态附加表单。继续检查用户输入并动态添加/删除表单。您可以使用form_1
,form_2
等ID来区分学生表单。
2)然后,在你的后端,你将遍历POST
参数并手动创建学生字段(创建你的课程后)。您如何知道用户填写了多少学生(即已提交了多少学生表格)?将用户输入作为表单中的隐藏字段传递,然后循环遍历它。
这样您就可以为创建课程及其学生提供单一视图。
另一种选择:
1)在StudentCreationForm
期间,将学生人数作为额外参数传递给ClassCreationForm
(或init
)。这要求您在上一页(通过ajax / post)中将您的用户输入的学生数量作为输入。以下链接提供了有关如何实现此目的的优秀教程: