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 вот то, что мы получили в результате фильтрации
Вернуться на верх