gpt4 book ai didi

python - 如何检查django中for循环的重复行

转载 作者:行者123 更新时间:2023-11-28 18:04:03 25 4
gpt4 key购买 nike

我是 django 的新手,我为数据创建了 3 个表

class student_admission(models.Model):
Student = models.CharField(max_length= 50)
Father = models.CharField(max_length= 50)
Date = models.CharField(max_length= 50)
Gender = models.CharField(max_length= 50)
Address = models.CharField(max_length= 250)
City = models.CharField(max_length= 50)
College = models.CharField(max_length= 250)
Branch = models.CharField(max_length= 50)
Semester = models.CharField(max_length= 100)
Occupation = models.CharField(max_length= 50)
Pin = models.IntegerField(default=10)
Phone = models.IntegerField(default=20)
FatherPhone = models.IntegerField(default=20)
Email = models.EmailField(max_length= 100)

class course_content(models.Model):
course = models.CharField(max_length= 100)
Code = models.CharField(max_length=50)

class student_course(models.Model):
Student_id= models.ForeignKey(student_admission,on_delete=None)
Course_id = models.ForeignKey(course_content,on_delete=None)

student_admission 表中我保存了学生信息如果学生提交此表格,则在 course_content 表中保存类(class)列表,然后他在我的 course_content 列表中选择类(class)/p>

然后我使用这个查看函数

在我的网站上显示这些数据
def table(request):
data = student_course.objects.all().prefetch_related("Student_id","Course_id")
d = {"data":data}
return render(request,"html/tables.html",d)

然后我在html页面上打印数据

 <tbody>

{% for item in data %}
<tr>
<td>{{item.Student_id.id}}</td>
<td>{{item.Student_id.Student}}</td>
<td>{{item.Student_id.Father}}</td>
<td>{{item.Student_id.Date}}</td>
<td>{{ item.Course_id.course}}</td>
<td>{{item.Student_id.Gender}}</td>
</tr>
{% endfor %}
</tbody>

一切正常,我得到了这样的结果this is my html page of student table

但是我想要:

如果学生选择 3 门类(class),那么我只得到该学生的一排,并且像这样在一列中得到 3 门类(class)(python、business、php+)

请告诉我该怎么做?

最佳答案

不是查询student_course 模型的所有对象,而是像这样查询 View 中所有学生的列表:

def table(request):
data = student_admission.objects.all()
d = {"data": data}
return render(request,"html/tables.html", d)

然后在您的 html 模板中:

<tbody>
{% for stud in data %}
<tr>
<td>{{stud.id}}</td>
<td>{{stud.Student}}</td>
<td>{{stud.Father}}</td>
<td>{{stud.Date}}</td>
<td>
{% for stud_course in stud.student_course_set.all %} // this loop will get all the student_course of this student
<span>{{ stud_course.Course_id.course }}</span>
{% endfor %}
</td>
<td>{{stud.Gender}}</td>
</tr>
{% endfor %}
</tbody>

这将为您带来预期的结果。如果仍然出现错误,请在下方评论。

另外在旁注中,您应该遵循 pep8命名约定你命名你的类和变量。它使它们更易于阅读和理解。简而言之,类名应该遵循 Pascal Camel Case,因此它们应该 LookLikeThis 而变量名应该遵循 Snake Case,并且应该 look_like_this

关于python - 如何检查django中for循环的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54573899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com