Django - получить количество объектов в связанных наборах - PullRequest
0 голосов
/ 19 февраля 2019

Существует две модели:

class Article(..:
    locations = ManyToMany('Location'...,related_name='articles')

class Location(...):
    ...

Я ищу способ получить номер местоположения в любом связанном наборе Article.locations

Например:

  1. Article1 - Милан, Вена, Париж
  2. Article2 - Милан, Paris
  3. Article3 - Париж
  4. Статья - Дубай

Theрезультат будет:

Париж - 3, Милан - 2, Вена - 1, Дубай -1

Я закончил так:

Location.objects.all().annotate(Count(?))

Возможно ли это сделатьэто в один или два Queries?Я хочу избежать этого с помощью циклов.

Более того, я хочу сделать это, учитывая только подмножество Articles (отфильтрованный набор запросов).

1 Ответ

0 голосов
/ 19 февраля 2019

попробуйте

Location.objects.all().annotate(
    locations_count=Count('locations')
  )

и в шаблоне

{{obj.locations_count}}

или

ax = Location.objects.all().count()
 {{ax}}

надеюсь, что это поможет

...