【发布时间】:2018-08-06 18:31:24
【问题描述】:
我正在尝试创建一种学生可以注册老师课程的方式。我在我的 StudentData 模型中添加了一个布尔字段,然后我在我的课程模型中添加了一个多对多字段。我的每个课程页面都是一个生成的 slug 页面,所有学生都被列出。我希望在每个学生附近都会显示一个复选框。如果教师选择更多学生并按下 Enroll 按钮,则只有这些学生可以查看课程。
现在,模板条件我可以自己完成,但我坚持使用复选框以正确的方式更新数据。这是样板:
<ul>
{% for student in students %}
<br>
<br>
{{ student.name }} {{ student.surname }}<input type='checkbox' {% ifequal value 0 %}checked{% endifequal %}> 0
<br>
<br>
{% endfor %}
</ul>
<div class="row">
<div class="col-md-4">
<div class="pagination">
<span class="step-links">
{% if students.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ students.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
{{ students.number }}
</span>
{% if students.has_next %}
<a href="?page={{ students.next_page_number }}">next</a>
<a href="?page={{ students.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>
</div>
<div class="col-md-4">
<button class="btn-success">Enroll</button>
</div>
</div>
class StudentDataForm(forms.ModelForm):
enrolled = forms.BooleanField()
def __init__(self):
if self.checked:
self.fields['enrolled'].initial = True
class Meta:
model = StudentData
fields = ('enrolled', )
class StudentData(models.Model):
name = models.CharField(max_length=30)
surname = models.CharField(max_length=50)
student_ID = models.CharField(unique=True, max_length=14)
notes = models.CharField(max_length=255, default=None, blank=True)
enrolled = models.BooleanField(default=False)
course = models.ManyToManyField('Course', default=None, blank=True)
class Course(models.Model):
study_programme = models.ForeignKey('StudyProgramme', on_delete=models.CASCADE, default='')
name = models.CharField(max_length=50, unique=True)
ects = models.PositiveSmallIntegerField(validators=[MaxValueValidator(99)])
description = models.TextField()
year = models.PositiveSmallIntegerField(validators=[MaxValueValidator(99)])
semester = models.IntegerField(choices=((1, "1"),
(2, "2"),
), default=None)
teacher1 = models.ForeignKey('TeacherData', on_delete=models.CASCADE, default=None,
verbose_name="Course Teacher", related_name='%(class)s_course_teacher')
teacher2 = models.ForeignKey('TeacherData', on_delete=models.CASCADE, default=None, null=True,
verbose_name="Seminar Teacher", related_name='%(class)s_seminar_teacher')
slug = models.SlugField(max_length=150, unique=True)
【问题讨论】:
标签: python django django-forms django-templates