【发布时间】:2021-12-28 14:08:37
【问题描述】:
所以我有这个模型:
class Student(models.Model):
id = models.AutoField(primary_key=True)
first_name=models.CharField(max_length=50)
last_name=models.CharField(max_length=50)
title=models.CharField(max_length=30,default="",blank=True)
tel=models.CharField(max_length=50,default="",blank=True)
e_mail=models.CharField(max_length=50,default="",blank=True)
social_media=models.CharField(max_length=50,default="",blank=True)
social_media2=models.CharField(max_length=50,default="",blank=True)
social_media3=models.CharField(max_length=50,default="",blank=True)
street=models.CharField(max_length=50)
postal=models.CharField(max_length=50)
city=models.CharField(max_length=50)
country=models.CharField(max_length=50)
graduation_uni=models.DateField(null=True,default=None,blank=True)
graduation_ikomt=models.DateField(null=True,default=None,blank=True)
certificate_no=models.CharField(max_length=50,default="",blank=True)
def __str__(self):
return str(self.id) + " - " +self.first_name + " " + self.last_name
class Course(models.Model):
id = models.AutoField(primary_key=True)
course=models.CharField(max_length=50)
description=models.CharField(max_length=50,null=True,default=None,blank=True)
start_date=models.DateField(null=True,default=None,blank=True)
end_date=models.DateField(null=True,default=None,blank=True)
def __str__(self):
return str(self.id) + " - " +self.course + " | " + self.start_date.strftime("%d.%m.%y") + " - " + self.end_date.strftime("%d.%m.%y")
class StudentInCourse(models.Model):
StudentId = models.ForeignKey(Student, on_delete=models.CASCADE)
CourseId = models.ForeignKey(Course, on_delete=models.CASCADE)
def __str__(self):
return str(Student.objects.get(id=self.StudentId.id)) + " in " + str(Course.objects.get(id=self.CourseId.id))
我想只显示特定课程中的学生,使用这样的查询(在我的 views.py 中):
students_in_course=StudentInCourse.objects.filter(CourseId=id)
latest_student_list = Student.objects.filter(id__in=students_in_course)
遗憾的是,我只得到一个空结果。任何想法我做错了什么?我认为对于主键/外键关系,过滤器应该以这种方式工作?
我们将不胜感激。
问候
【问题讨论】:
标签: django django-models django-views