【发布时间】:2021-05-31 16:43:14
【问题描述】:
共有三个表:
class Course(models.Model):
name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
start_date = models.CharField(max_length=255)
end_date = models.CharField(max_length=255)
def get_count_student(self):
count = CourseParticipant.objects.filter(course=self.id)
return len(count)
def __str__(self):
return f'{self.name}'
class Student(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
email = models.CharField(max_length=255)
def __str__(self):
return f'{self.first_name}'
class CourseParticipant(models.Model):
course = models.ForeignKey(Course, related_name='course', on_delete=models.CASCADE)
student = models.ForeignKey(Student, related_name='student', on_delete=models.CASCADE)
completed = models.BooleanField(default=False)
我想得到不参加特定课程的学生,我满足以下要求
potential = Student.objects.exclude(courseparticipants__course=pk)
我在 pk 中表示课程的 id,作为回应,我得到:
django.core.exceptions.FieldError:无法将关键字“课程参与者”解析为字段。选项包括:电子邮件、名字、id、姓氏、学生
【问题讨论】:
标签: python python-3.x django django-models django-rest-framework