过滤2个模型
id = request.GET.get('StudentID')
studentenroll = StudentsEnrollmentRecord.objects.filter(Student_Users=id)
payment=StudentsPaymentSchedule.objects.filter(Students_Enrollment_Records=studentenroll)
return render(request, 'Homepage/enrollmentrecords.html',{"studentenroll":studentenroll,"payment":payment})
我的模特
class StudentsEnrollmentRecord(models.Model):
Student_Users = models.ForeignKey(StudentProfile, related_name='+', on_delete=models.CASCADE,null=True)
School_Year = models.ForeignKey(SchoolYear, related_name='+', on_delete=models.CASCADE, null=True, blank=True)
Courses = models.ForeignKey(Course, related_name='+', on_delete=models.CASCADE, null=True, blank=True)
Section = models.ForeignKey(Section, related_name='+', on_delete=models.CASCADE, null=True,blank=True)
Payment_Type = models.ForeignKey(PaymentType, related_name='+', on_delete=models.CASCADE, null=True)
Education_Levels = models.ForeignKey(EducationLevel, related_name='+', on_delete=models.CASCADE,null=True)
Discount_Type = models.ForeignKey(Discount, related_name='+', on_delete=models.CASCADE,null=True)
Remarks = models.TextField(max_length=500,null=True)
def __str__(self):
suser = '{0.Student_Users} {0.Education_Levels}'
return suser.format(self)
class StudentsPaymentSchedule(models.Model):
Students_Enrollment_Records=models.ForeignKey(StudentsEnrollmentRecord, related_name='+', on_delete=models.CASCADE,null=True)
Payment_Schedule = models.DateField(null=True,blank=True)
Amount = models.FloatField()
Remarks=models.TextField(max_length=500)
def __str__(self):
suser = '{0.Students_Enrollment_Records}'
return suser.format(self)
你们能帮我完成我的任务吗,因为我不知道如何在视图中连接这两个模型,我在过滤方面也很少混淆。先感谢您。
使用__in
运算符;因为studentenroll
是一个查询集,而不是单个对象。
payment=StudentsPaymentSchedule.objects.filter(Students_Enrollment_Records__in=studentenroll)
另外,在您的var / class / atrs命名上做点工作;PEP8
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句