Как извлечь нужное значение из queryset значения типа dict с помощью аннотации d в Django
[views.py]
from_date = request.GET.get('from_date')
to_date = request.GET.get('to_date')
histories = History.objects.filter(summary__icontains='teacher', date__gte=from_date, date__lte=to_date).order_by('date').annotate(teacher=F('summary')).values('study_name', 'teacher', 'date')
return render(request, 'charts.html',
{
'histories': histories,
'from_date': from_date,
'to_date': to_date
})
В модели History есть поля summary и create_date. Чтобы проверить тип значения поля в шаблоне, сделайте и проверьте тег шаблона get_type, и поле summary оказалось типом dict. Мне не нужно все значение поля summary, я просто хочу извлечь значение teacher и сохранить его во временном поле под названием 'teacher' с помощью annotate.
полное значение поля сводки:
{'field_summary': {'recruiting': 'None -> Yes', 'teacher': 'None -> Halen', 'subject': None -> 'science'}, 'file_summary': {}}
Итак, результат, который я хочу получить, следующий:
[charts.html]
{{ histories }}
[дисплей]
<QuerySet [{'study_name': 'math', 'create_date': datetime.datetime(2022, 1, 4, 0, 24, 33, 357339, tzinfo=<UTC>), 'teacher': 'None -> Halen'}, {'study_name': 'science', 'create_date': datetime.datetime(2022, 3, 2, 10, 10, 33, 733339, tzinfo=<UTC>), 'teacher': 'None -> Kevin'}, {'study_name': 'music', 'create_date': datetime.datetime(2022, 2, 10, 3, 11, 33, 738452, tzinfo=<UTC>), 'teacher': 'Mark'}]>
<