Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django中编写多模型查询_Django_Models - Fatal编程技术网

如何在Django中编写多模型查询

如何在Django中编写多模型查询,django,models,Django,Models,如何为登录(student=self.request.user.id)以查看作业标题(属于自己的)的学生编写查询 (取水口) 学生分为一个班,每个班有多个模块 class IntakeDetails(models.Model): intake = models.ForeignKey(intake, on_delete=models.CASCADE) lecturer = models.ForeignKey(Lecturer, on_delete=models.CASCAD

如何为登录(
student=self.request.user.id
)以查看作业标题(属于自己的)的学生编写查询 (取水口)

学生分为一个班,每个班有多个模块

    class IntakeDetails(models.Model):
    intake = models.ForeignKey(intake, on_delete=models.CASCADE)
    lecturer = models.ForeignKey(Lecturer, on_delete=models.CASCADE)
     module= models.ForeignKey(Module, on_delete=models.CASCADE)

    class AssignAssignment(models.Model):
    title=models.CharField(max_length=30)
    duedate=models.DateField()
intakedetails=models.ForeignKey(IntakeDetails,on_delete=models.CASCADE,null=True)
我尝试了这个,但是如果有多个
IntakDetails
,它会弹出一个错误

@login_required
class ModelIndexView(ListView):
template_name= 'accounts/students/students.html'
context_object_name= 'students'
def get_queryset(self):
    student = self.request.user.id
    student_det = Student.objects.get(user_id=student)
    assignment=IntakeDetails.objects.get(intake_id=student_det.intakecode)
    queryset=AssignAssignment.objects.filter(intakedetails_id=assignment.id)
    return queryset

因为当您使用
objects.get
时,应该只有一行与您的查询匹配。无行或多行--
ObjectDoesNotExist
multipleobjects分别返回

您可以使用此查询获得所需的结果:

AssignAssignment.objects.filter(intakedetails__intake_id=Student.objects.get(user_id=student).intakecode)
AssignAssignment.objects.filter(intakedetails__intake_id=Student.objects.get(user_id=student).intakecode)