Django queryset让孩子和孙子孙女

9-b*_*its 1 django django-models django-queryset

我有一个django模型,指的是它的自我(在父母 - 子孙关系中).

我正在尝试执行一个查询,该查询将返回特定父级的所有子级和孙级实例.

例如:

class Post(models.Model):
    parent = models.ForeignKey('self', null=True, related_name="children")
Run Code Online (Sandbox Code Playgroud)

这种关系深入3层 - 获得所有子/孙的查询集的最佳方法是什么?我想把它们放在一起所以我可以按日期订购它们.

mar*_*eed 6

我认为这应该有效:

from django.db.models.query import Q
Post.objects.filter(Q(parent = post) | Q(parent__parent = post))
Run Code Online (Sandbox Code Playgroud)