gpt4 book ai didi

python - 我如何在 Django 中获取多对多关系表数据?

转载 作者:行者123 更新时间:2023-12-05 05:45:54 25 4
gpt4 key购买 nike

这是我的模型.py

from django.db import models

class Course(models.Model):
Credits = (
('1', '0.75'),
('2', '1'),
('3', '2'),
('4', '3'),
('5', '4'),
('6', '5'),
('7', '6'),
)

course_code = models.CharField(max_length=20, default="CSE-101", unique=True)
course_name = models.CharField(max_length=50, default="C Language", unique=True)
course_credit = models.CharField(max_length=1, choices=Credits, default='4')

def __str__(self):
return self.course_code


class Student(models.Model):
std_name = models.CharField(max_length=40)
std_id = models.CharField(max_length=50, primary_key=True)
std_email = models.EmailField(max_length=50, unique=True, blank=True)

course = models.ManyToManyField(Course)

def __str__(self):
return self.std_id

当我在Student表中输入数据时,数据库创建了一个表student_course,我想获取这个student_course数据。

我想获取每个学生注册了多少门类(class)以及每个类(class)名称的数据。我如何获取这些数据并在网页中显示这些数据?

我是 python 和 Django 的菜鸟,所以非常感谢任何帮助。

最佳答案

i want to get this student_course data -> 要访问学生表中的相关对象,您可以像这样访问 Student.course.all()


I want to get data each student how many course they registered and each course name -> 您可以通过像这样过滤Student对象来检索每个学生的类(class)

student = Student.objects.get(std_id=_place_student_id_here_)
courses = student.course.all() # this will return all courses related to perticular student

更新

如果您想为所有用户获取类(class),您必须这样做

students = Student.objects.all()
for student in students:
print(student.course.all()) # this will return all courses for this student

如果你想在模板中重新阅读类(class),就这样做

在你的 views.py

def myview(request):
students = Student.objects.all()
return render(request, "studentlist.html",{'students':students})

在您的studentlist.html

{% for student in students %}
<p>Student Name : {{student.std_name}}<p>
<p>Courses :
{% for course in student.course.all %}
<span>{{course.course_name}}</span>
{% endfor %}
</p>
{% endfor %}

关于python - 我如何在 Django 中获取多对多关系表数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71276227/

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