Как получить данные таблицы отношений "многие ко многим" в django?

Это мой models.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.

Я хочу получить данные о каждом студенте, сколько курсов они зарегистрировали и название каждого курса. Как я могу получить эти данные и показать их на веб-странице?

Я новичок в python и Django, поэтому любая помощь будет очень признательна.

i want to get this student_course data -> для доступа к связанному объекту из таблицы student вы можете обратиться следующим образом Student.course.all()


I want to get data each student how many course they registered and each course name -> Вы можете получить курсы каждого студента, фильтруя объект Student следующим образом

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

hi если вы хотите получить курсовую на одного студента этот код может помочь вам:

from models import Student

my_student = Student.objects.get(std_id = {student id})
student_course = my_student.course
totoal_course = student_course.count()
name_of_courses = [course.name for course in student_course.all()]
Вернуться на верх