Агрегация запросов Django в список сущностей
Я использую Django и Postgres и у меня есть текущая установка (макет):
Класс A: name=models.CharField() b=models.ManyToManyField(to=B)
Класс B: c=ForeignKey(to=C) amount=models.IntegerField()
Мне нужно создать запрос, который, начиная с A, возвращает все значения в B в виде списка словарей. Я пробовал JSONBAgg и ArrayAgg, но мне не повезло при попытке сохранить несколько полей.
Пример запроса: from django.contrib.postgres.aggregates.general import JSONBAgg A.objects.annotate(test=JSONBAgg('amount')).values('name', 'test') РАБОТАЕТ! A.objects.annotate(test=JSONBAgg('amount', 'c__id')).values('name', 'test') НЕ РАБОТАЕТ!
Как получить список dicts с несколькими значениями вместо списка строк?
Может быть этот код будет работать, когда я применил его, он сработал.
res = defaultdict(list) для sub в test_list: for key in sub: res[key].append(sub[key])
print("Извлеченный словарь : " + str(dict(res))))
>