我有两个与User相关的模型(在不同的apps / models.py文件中):
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, null=False)
...
class CourseStudent(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
semester = models.ForeignKey(Semester)
...
我正在尝试获取当前学期至少有一门课程的所有个人资料的查询集。
如何生成配置文件的查询集,其中profile.user
至少有一个CourseStudent
个实例,并进行过滤以便coursestudent.semester=current_semester
?
由于学生在本学期可能有多门课程,因此还需要删除重复项目(仅在查询集中使用唯一的配置文件)
编辑:我正在使用postgresql并试图找出是否需要使用distinct with an argument。
答案 0 :(得分:0)
未经测试。也许你应该试试
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, null=False)
...
class CourseStudent(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name="course_student")
semester = models.ForeignKey(Semester)
Profile.objects.filter("what_you_want").exclude(user__courser_student=None).distinct()