int()参数必须是字符串,类似字节的对象或数字,而不是'ForwardManyToOneDescriptor'
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='gradelevel', on_delete=models.CASCADE,blank=True,null=True)
Remarks = models.TextField(max_length=500,null=True,blank=True)
def __str__(self):
suser = '{0.Student_Users} {0.Education_Levels}'
return suser.format(self)
class SubjectSectionTeacher(models.Model):
School_Year = models.ForeignKey(SchoolYear, related_name='+', on_delete=models.CASCADE,null=True)
Education_Levels = models.ForeignKey(EducationLevel, related_name='gradelevel', on_delete=models.CASCADE,blank=True)
Courses= models.ForeignKey(Course, related_name='+', on_delete=models.CASCADE,null=True,blank=True)
Sections= models.ForeignKey(Section, related_name='+', on_delete=models.CASCADE,null=True)
Subjects= models.ForeignKey(Subject, related_name='+', on_delete=models.CASCADE,null=True)
Employee_Users= models.ForeignKey(EmployeeUser, related_name='+', on_delete=models.CASCADE,null=True)
Start_Date = models.DateField(null=True,blank=True)
End_Date = models.DateField(null=True,blank=True)
Remarks = models.TextField(max_length=500)
def __str__(self):
suser = '{0.Employee_Users}'
return suser.format(self)
你们能帮助我如何将StudentsEnrollmentRecord(Education_Levels)过滤为SubjectSectionTeacher(Education_Levels),因为真的很难理解django过滤器,我已经为这个错误浪费了2天。
这是我的观点
def enrollmentform(request):
id = request.GET.get('StudentID')
if StudentsEnrollmentRecord.objects.filter(Student_Users=id).exists():
studentenroll = StudentsEnrollmentRecord.objects.filter(Student_Users=id)
FeesType = SchoolFeesMasterList.objects.filter(Education_Levels=StudentsEnrollmentRecord.Education_Levels)
return render(request, 'Homepage/enrollmentrecords.html',{"studentenroll":studentenroll,"SchoolFeesType":FeesType})
else:
.
.
.
return render(request, 'Homepage/EnrollmentForm.html',
{"students": students, "edulevel": edulevel, "payment": payment, 'sched': sched, 'subj': subj,
"year": year, "doc": doc,"education":education,"payments":payments})
答案 0 :(得分:0)
从您发布的内容中,您试图查找与在get请求中发回的学生证相关的学生记录的费用。因此,在那种情况下,您需要查询返回的对象的Education_Level,而不是模型中定义为字段的Education_Level。如果这不是您要执行的操作,请在评论中进行说明,然后我可以进行编辑。
def enrollmentform(request):
id = request.GET.get('StudentID')
studentenroll = StudentsEnrollmentRecord.objects.filter(Student_Users=id)
if studentenroll.exists():
fees = SchoolFeesMasterList.objects.filter(Education_Levels__in=studentenroll.values_list('Education_Levels'))
return # <what you want to return from these queries>
else:
return # <what you want to return if the records do not exist>