Добрый день, приятели, я не очень знаком с объединением наборов запросов в один. Как добиться желаемого результата без изменения дизайна шаблона?
Примечание: я уже задавал этот вопрос . Я только что узнал, что есть такая вещь, как объединение нескольких наборов запросов в Django. Это не тот же вопрос.
Это мой views.py:
Markingbehaviors = StudentsBehaviorGrades.objects.filter(Teacher=teacher) \
.filter(Students_Enrollment_Records__in=Students.values_list('id')).values('Grading_Period').distinct('Grading_Period')\
.order_by('Grading_Period')
Marking = StudentsBehaviorGrades.objects.filter(Teacher=teacher) \
.filter(Students_Enrollment_Records__in=Students.values_list('id'))
cores = StudentsBehaviorGrades.objects.filter(Teacher=teacher) \
.filter(Students_Enrollment_Records__in=Students.values_list('id')).values(
'Marking__Marking',
'Grading_Behavior__Grading_Behavior__Name',
'Grading_Behavior__Grading_Behavior__GroupName').distinct(
'Grading_Behavior__Grading_Behavior__Name') \
.order_by('Grading_Behavior__Grading_Behavior__Name')
behaviors = StudentsBehaviorGrades.objects.filter(Teacher=teacher) \
.filter(Students_Enrollment_Records__in=Students.values_list('id')).values(
'Marking__Marking',
'Grading_Behavior__Grading_Behavior__Name',
'Grading_Behavior__Grading_Behavior__GroupName').distinct(
'Grading_Behavior__Grading_Behavior__GroupName') \
.order_by('Grading_Behavior__Grading_Behavior__GroupName')
matches = cores.union(Marking,behaviors)
Это мой html:
<tr>
{% for quarter in Markingbehaviors %}
td class="tdquarter">Q {{quarter.Grading_Period}}</td>
{% endfor %}
</tr>
{% for match in matches %}
<tr>
<td rowspan="2" colspan="4" class="tblcoretitle">{{match.Grading_Behavior__Grading_Behavior__Name}}</td>
</tr>
<tr>
<td colspan="4" class="tblcore">{{match.Grading_Behavior__Grading_Behavior__GroupName}}</td>
<td class="tblcore">{{match.Marking.Marking}}</td>
</tr>
{% endfor %}
Это мой админсайт Студенты Поведенческие классы :

Это мой текущий результат:

Я хочу результат:

Обновление
Когда я попробовал это в моих views.py:
matches = set(itertools.chain(cores, behaviors,Marking))
Я получил эту ошибку:

Мате, если вы есть лучшее решение или идея, пожалуйста, поделитесь своим ответом.
Вот как я рендеринг
Marking = StudentsBehaviorGrades.objects.filter(Teacher=teacher) \
.filter(Students_Enrollment_Records__in=Students.values_list('id'))\
.order_by('Grading_Behavior__Grading_Behavior__Name')
cores = StudentsBehaviorGrades.objects.filter(Teacher=teacher) \
.filter(Students_Enrollment_Records__in=Students.values_list('id')).values(
'id',
'Marking__Marking',
'Grading_Period',
'Grading_Behavior__Grading_Behavior__Name',
'Grading_Behavior__Grading_Behavior__GroupName').distinct(
'id',
'Grading_Behavior__Grading_Behavior__Name').order_by(
'id',
'Grading_Behavior__Grading_Behavior__Name'
)
behaviors = StudentsBehaviorGrades.objects.filter(Teacher=teacher) \
.filter(Students_Enrollment_Records__in=Students.values_list('id')).values(
'id',
'Marking__Marking',
'Grading_Period',
'Grading_Behavior__Grading_Behavior__Name',
'Grading_Behavior__Grading_Behavior__GroupName').distinct(
'id',
'Grading_Behavior__Grading_Behavior__GroupName').order_by(
'id',
'Grading_Behavior__Grading_Behavior__GroupName'
)
matches = cores.union(Marking,behaviors)
return render(request, 'Homepage/mystudentperreport.html',{ "matches":matches,})