Django: Добавьте объект модели в агрегированный кверисет
Есть ли способ добавить объект в агрегированный набор запросов? Например:
qs = Model.objects.filter(title="abc").aggregate(likes=Count('likes'))
и я хочу сделать что-то вроде:
qs = Model.objects.filter(title="abc").aggregate(likes=Count('likes')).get(pk=1)
Когда оценивается набор запросов, его результаты кэшируются. Однако этот кэш не переносится, если вы используете другой метод, например filter или order_by или get, для этого набора. Таким образом, вы не можете попытаться оценить больший набор и использовать фильтрацию на наборе запросов для получения меньших наборов без выполнения другого запроса.
Так что вы можете поступить следующим образом:
qs = Model.objects.filter(pk=1, title="abc")
если qs это None у вас нет данных, соответствующих запросу для начала, если это не None вы можете пойти и сделать это следующим образом:
qs_agg = qs.aggregate(likes=Count('likes'))
qsвот то, что мы получили в результате фильтрации