Django注释-获取所有相关对象的属性

时间:2019-06-05 11:37:12

标签: python django python-3.x django-models django-2.0

我有这样的模型:

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

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

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

如何使用annotate查询集方法来获取与某些B查询集相关的A s条评论的所有标题?

我尝试过:

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

但它仅返回第一个对象。

FilteredRelation也没有帮助( FilteredRelation's condition doesn't support nested relations

1 个答案:

答案 0 :(得分:0)

我用ArrayAgghttps://docs.djangoproject.com/en/2.2/ref/contrib/postgres/aggregates/)解决了这个问题 -仅适用于Postgres。