Как разделить поля groupby при выводе результатов кверисета в Django
[views.py]
annotations = {}
types = ('A', 'B')
for type in types:
annotations[type] = Count('id', filter=Q(type=type))
annotations[f'R_{type}'] = Count('id', filter=Q(type=type, is_recruiting='Recruiting'))
annotations[f'N_{type}'] = Count('id', filter=Q(type=type, is_recruiting='Not yet recruiting')))
counts = Study.objects.filter(is_deleted=0) \
.values('teacher')
.annotate(**annotations).values('teacher', *annotations.keys())
Сгруппировав учителей, я получил подсчет для каждого учителя. Вот результат:
<QuerySet [ {'teacher': 'Helen', 'A': 1, 'R_A': 1, 'N_A': 0, 'B': 3, 'R_B': 2, 'N_B': 0} {'teacher': 'Helen/Jennie', 'A': 0, 'R_A': 0, 'N_A': 0, 'B': 1, 'R_B': 0, 'N_B': 0}, {'teacher': 'Jennie', 'A': 0, 'R_A': 0, 'N_A': 0, 'B': 1, 'R_B': 0, 'N_B': 0}} >
Однако при группировке учителей я хочу разделить их на основе "/" и добавить подсчет для каждого учителя, чтобы вывести следующие результаты.
<QuerySet [ {'teacher': 'Helen', 'A': 1, 'R_A': 1, 'N_A': 0, 'B': 4, 'R_B': 2, 'N_B': 0}, {'teacher': 'Jennie', 'A': 0, 'R_A': 0, 'N_A': 0, 'B': 2, 'R_B': 0, 'N_B': 0}] >
Однако разделение по значениям невозможно. Если у вас есть обходной путь, пожалуйста, помогите мне.