我正在尝试在Django中创建一个类注册应用程序。为了简化我的问题,我有一个学生模型,块(时间段)和课程(课程)。每个块有多个类,学生必须为每个块注册一个类。将允许一些自定义,因此事先不知道有多少块或每个块可用的类。
我想生成一个带有单选按钮的表单,如下所示:
<小时/>
...
目前,我的模型看起来像这样:
class Student(models.Model):
first_name = models.CharField()
[...]
class Block(models.Model):
block = models.CharField(
primary_key=True,
choices=(('A', 'Block A'),
('B', 'Block B'),
('C', 'Block C'),
('D', 'Block D'),
('E', 'Block E')))
start_time = models.DateTimeField()
[...]
class Class(models.Model):
title = models.CharField()
block = models.ForeignKey('Block')
[...]
到目前为止,我的forms.py
:
class ClassForm(Form):
class_choice = ModelChoiceField(
queryset=Class.objects.all(),
widget=RadioSelect,
empty_label=None)
我可以在我的views.py
中提供该表单,但当然它只列出了每个块的所有可用类。
我认为我需要循环遍历所有现有的块并过滤每个块迭代的课程并将其列为多选形式,但我不确定解决问题的最佳方法是什么,然后如何记录每个学生每个街区的班级选择。