2012-02-10 30 views
1

私は親子孫関係で自己を参照するdjangoモデルを持っています。子どもと孫を得るためのDjango queryset

特定の親のすべての子インスタンスと孫インスタンスを返すクエリを実行しようとしています。ですから、例えば

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

この関係は、3つのレベルに深い行く - すべての子供/孫とクエリセットを取得するための最良の方法は何ですか?私は一緒にそれらを一緒に取得したいので、私はそれらを日付順に注文することができます。

答えて

6

私は、これは動作するはずだと思う:

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

私はあなたがdjango-mpttを試みるべきだと思います。