你好,我是Django新手。
我有一个看起来像这样的模型。
Models.py
class CustomUser(AbstractUser):
pass
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
def __str__(self):
return self.username
class Campus(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Intervention(models.Model):
subject = models.CharField(max_length=200)
begin_date = models.DateField(default=datetime.datetime.today)
end_date = models.DateField(default=datetime.datetime.today)
description = models.TextField(blank=True)
speaker = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
campus = models.ForeignKey(Campus, on_delete=models.CASCADE)
class Meta:
verbose_name = 'Intervention'
verbose_name_plural = 'Interventions'
def __str__(self):
return self.subject
class Evaluation(models.Model):
interventions = models.ForeignKey(Intervention, on_delete=models.CASCADE)
student_id = models.CharField(max_length=20)
speaker_knowledge_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
speaker_teaching_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
speaker_answer_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
slide_content_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
slide_examples_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
comment = models.TextField(blank=True)
class Meta:
verbose_name = 'Evaluation'
verbose_name_plural = 'Evaluations'
所以,基本上我想做的是在主页上,我希望有一个选择框,学生必须在其中选择校园,然后他将被重定向到一个新页面,在其中他只能看到属于您的干预措施到他选择的校园
我的主页看起来像这样:
<form method="post" action="/Mark/"/>
<select name="campus_id">
<option value="" disabled selected>Choose your Campus</option>
{% for camp in campus %}
<option value="camp.pk">{{ camp.name }}</option>
{% endfor %}
</select>
<input type="submit" />
</form>
我尝试了几件事,但没有成功:/如果有人可以帮助或给我提示。
谢谢。最好的问候。
您可以尝试这样
您选择的校园将是:
campus = Campus.objects.get(pk=pk)
现在校园的related_intervention将是:
intervention = campus.intervention_set.all()
或者,您也可以像这样过滤Intervention
模型。
Intervention.objects.filter(campus=campus)
我建议您有一个清晰的想法并定义流程: