Django queryset让孩子和孙子孙女

时间:2012-02-10 03:45:11

标签: django django-models django-queryset

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

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

例如:

class Post(models.Model):
    parent = models.ForeignKey('self', null=True, related_name="children")

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

2 个答案:

答案 0 :(得分:6)

我认为这应该有效:

from django.db.models.query import Q
Post.objects.filter(Q(parent = post) | Q(parent__parent = post))

答案 1 :(得分:1)

我认为你应该尝试django-mptt