Добрый день всем, надеюсь, вам достаточно названия, чтобы понять, в чем заключается моя проблема, у меня есть этот код в моих views.py
def corevalues(request):
coregradelevel = request.GET.get('coregradelevel')
teacher = request.GET.get('teacher')
corevalues = CoreValues.objects.all().order_by('Display_Sequence')
corevaluesdescription = CoreValuesDescription.objects.values('Description').distinct('Description').order_by('Description')
corevaluesperiod = CoreValuesDescription.objects.all().order_by('Display_Sequence')
print(corevaluesperiod)
gradelevel = EducationLevel.objects.filter(id__in = coregradelevel).distinct().order_by('id')
studentcorevalues = StudentsCoreValuesDescription.objects.filter(Teacher = teacher).filter(GradeLevel__in = gradelevel.values_list('id'))\
.values('Students_Enrollment_Records').distinct('Students_Enrollment_Records').order_by('Students_Enrollment_Records')
student = StudentSubjectGrade.objects.filter(Teacher = teacher).filter(GradeLevel__in = gradelevel.values_list('id'))\
.values('Students_Enrollment_Records').distinct('Students_Enrollment_Records').order_by('Students_Enrollment_Records')
return render(request, 'Homepage/behavior.html',{"studentcorevalues":studentcorevalues,"corevalues":corevalues,"corevaluesdescription":corevaluesdescription,\
"corevaluesperiod":corevaluesperiod,"student":student})
из этой строки
student = StudentSubjectGrade.objects.filter(Teacher = teacher).filter(GradeLevel__in = gradelevel.values_list('id'))\
.values('Students_Enrollment_Records').distinct('Students_Enrollment_Records').order_by('Students_Enrollment_Records')
Я отфильтровываю и различаю имя учащегося, чтобы удалить дубликаты данных, но когда я отображаю их на моем html, результат будет
он отображает foriegnkey, а не имя студента, даже мой html является
{% for student in student %}
<tr>
<td>{{student.Students_Enrollment_Records}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{% endfor %}
это результат запроса студента, когда я его печатаю
<QuerySet [{'Students_Enrollment_Records': 1}, {'Students_Enrollment_Records': 5}, {'Students_Enrollment_Records': 9}, {'Students_Enrollment_Records': 13}, {'Students_Enrollment
_Records': 17}]>
я не знаю, почему он получает чужой ключ, это слишком запутанно.
ОБНОВЛЕНИЕ когда я попробовал это
student = StudentSubjectGrade.objects.filter(Teacher = teacher).filter(GradeLevel__Description = gradelevel.values_list('Description'))\
.values('Students_Enrollment_Records').distinct('Students_Enrollment_Records').order_by('Students_Enrollment_Records')
ошибка говорит ValueError: Значение QuerySet для точный поиск должен быть ограничен одним результатом с использованием нарезки.
это мои models.py
class EducationLevel(models.Model):
Sequence = models.IntegerField(null=True, blank=True)
Description = models.CharField(max_length=500,blank=True,null=True)
def __str__(self):
suser = '{0.Description}'
return suser.format(self)
class StudentsCoreValuesDescription(models.Model):
Teacher = models.ForeignKey(EmployeeUser, related_name='+', on_delete=models.CASCADE,
null=True, blank=True)
Core_Values = models.ForeignKey(CoreValuesDescription, related_name='+',
on_delete=models.CASCADE, null=True)
Description = models.CharField(max_length=500, null=True, blank=True)
Students_Enrollment_Records = models.ForeignKey(StudentsEnrolledSubject, related_name='+',
on_delete=models.CASCADE, null=True)
GradeLevel = models.ForeignKey(EducationLevel, related_name='+', on_delete=models.CASCADE,
null=True, blank=True)
Sections = models.ForeignKey(Section, related_name='+', on_delete=models.CASCADE, null=True)
grading_Period = models.ForeignKey(gradingPeriod, related_name='+', on_delete=models.CASCADE,
null=True, blank=True)
remarks = models.TextField(max_length=500, null=True, blank=True)
def __str__(self):
suser = '{0.Core_Values} - {0.Description}'
return suser.format(self)