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

У меня есть такие модели:

# models.py
class A(Model):
    ...

class B(Model):
    parent = ForeignKey(A)
    comments = ForeignKey(Comments)

class Comments(Model):
    title = CharField(...)  

Как, используя annotate метод queryset, я могу получить все заголовки комментариев B s, относящихся к некоторому A queryset?

Я пытался:

result = A.object.all().annotate(b_titles=F("b__comments__title"))

, но он возвращает только первый объект.

FilteredRelation также не помог (FilteredRelation's condition doesn't support nested relations)

1 Ответ

0 голосов
/ 05 июня 2019

Я решил эту проблему с ArrayAgg (https://docs.djangoproject.com/en/2.2/ref/contrib/postgres/aggregates/) - доступно только через Postgres.

...