Я пытаюсь массово обновить все мои записи в таблице A с количеством связанных записей в таблице B.
Я хотел бы сделать что-то вроде:
from django.db.models import Subquery, OuterRef, Count
table_b_subquery = TableB.objects.filter(a_id=OuterRef('id'))
TableA.objects.all().update(table_b_count=Count(Subquery(table_b_subquery)))
Это было бы эквивалентно этому N-BULK методу:
# Non-Bulk
for record in TableA.objects.all():
record.table_b_count = record.table_b_set.count()
Ошибка, которую я получаю, пытаясь массовым методом:
*** django.core.exceptions.FieldError: Aggregate functions are not allowed in this query
Как мне, казалось бы, просто считатьсвязанных записей в массовом обновлении?В идеале я хотел бы также применить простой фильтр полей к счетчику таблицы B.