0
我試圖解決以下情況下的多個模型的數據多對多多個表:查詢爲獲得在Django
許多學生有很多科目,但只有一些科目標記爲他目前的主題,一個教室裏有多個科目,學生可以攜帶其他課堂的科目,可以從他當前的教室查看。
我想要獲得所有那些學生當前擁有的所有課程,以及那些課程中所有具有教室狀態的課程,無論是現在還是未來。
class Student(models.model):
id = models.OnetoOneField(User)
class Subject(models.Model):
Subject_Master_Id=models.AutoField(primary_key=True)
Subject_Name=models.CharField(max_length=100,blank=False,unique=True)
user = models.ManyToManyField(Student,through = 'Student_Subject')
class Classroom(models.Model):
Class_Master_Id=models.AutoField(primary_key=True)
Classroom_Student = models.ManyToManyField(Student,through='Classroom_Student',related_name='classroom_student')
Classroom_Subject = models.ManyToManyField(Subject,through='Classroom_Subject',related_name='classroom_subject')
class Student_Subject(models.Model):
Student_Subject_Id = models.AutoField(primary_key=True)
subject= models.ForeignKey(Subject,on_delete = models.CASCADE, related_name='student_subject')
user=models.ForeignKey(Student,on_delete = models.CASCADE, related_name='student_subject')
is_current = models.BooleanField()
class Classroom_Student(models.Model):
Classroom_Student_Id=models.AutoField(primary_key=True)
Classroom_Id=models.ForeignKey(Classroom,on_delete=CASCADE)
Student_Id=models.ForeignKey(Student,on_delete=CASCADE, related_name= 'student')
is_current = models.BooleanField()
class Classroom_Subject(models.Model):
Classroom_Subject_Id=models.AutoField(primary_key=True)
Classroom_Id=models.ForeignKey(Classroom,on_delete=CASCADE)
Subject_Id=models.ForeignKey(Subject,on_delete=CASCADE, related_name='subject')