【发布时间】:2020-05-25 05:40:37
【问题描述】:
我有这两个模型
class Assignment(models.Model):
subject_info = models.ForeignKey(SubjectInfo, on_delete=models.CASCADE, related_name='assignments')
release_results = models.BooleanField(default=False)
total_marks = models.IntegerField(default=0)
deadline = models.DateTimeField()
class StudentAssignment(models.Model):
assignment = models.ForeignKey(Assignment, on_delete=models.CASCADE, related_name='submissions')
student = models.ForeignKey(Student, on_delete=models.CASCADE)
submitted = models.BooleanField(default=False)
scored = models.BooleanField(default=False)
status = models.CharField(choices=STATUS, max_length=50, null=True, blank=True)
score = models.IntegerField(null=True, blank=True)
在我看来,我正在尝试完成以下任一任务:
1) 没有与用户相关的学生作业
2) 有一个与用户相关的学生作业,但提交的值为 False
我是这样做的:
def get_queryset(self, *args, **kwargs):
queryset = Assignment.objects.filter(
subject_info__teacher__school=self.request.user.student.school,
subject_info__related_class=self.request.user.student.current_class,
subject_info__subject__in=self.request.user.student.subjects,
deadline__gte=datetime.now(),
).exclude(
submissions__isnull=True,
submissions__student=self.request.user.student,
submissions__submitted=False,
)
return queryset
但它没有返回正确的值。
请问我该如何解决这个问题?
【问题讨论】:
标签: django django-models foreign-keys