Django передает значение подзапросу внутри аннотата в наборе запросов с помощью mptt
У меня есть класс, основанный на ListCreateAPIView, в котором я модифицирую метод get_queryset... Мне нужно передать внутри подзапроса для аннотации параметра, но похоже OutherRef не работает
я использую библиотеку Mptt ..... subqueryItem работает нормально, subqueryNested вместо этого говорит "Этот кверисет содержит ссылку на внешний запрос и может быть использован только в подзапросе."
def get_queryset(self):
queryset = super().get_queryset()
subqueryItem = Subquery(Item.objects.filter(category=OuterRef('id')).order_by()
.values('category').annotate(count=Count('pk'))
.values('count'), output_field=IntegerField())
subqueryNested = Subquery(Item.objects.filter(category__in=ItemCategory.objects.get(pk=OuterRef('id')).get_descendants(include_self=True)).order_by()
.values('category').annotate(count=Count('pk'))
.values('count'), output_field=IntegerField())
queryset = queryset.annotate(
collcount = Coalesce(subqueryItem, 0),
collcountdeep = Coalesce(subqueryNested, 0),
)