私は、外部キー関係を自己参照して、このモデルを持っている:Djangoの自己再帰のForeignKeyのフィルタクエリ
class Person(TimeStampedModel):
name = models.CharField(max_length=32)
parent = models.ForeignKey('self', null=True, blank=True, related_name='children')
は、今私は人のために、すべてのマルチレベルの子を取得したいです。どのようにしてDjangoのクエリを書くのですか?再帰関数のように動作する必要があります。
get_all_children()を関数呼び出しとして、r = r + c.get_all_childrenを使う必要があります。 ()またはあなたはネストされたリストで終わるでしょう。私は自分自身を編集する権利を持っていないようです – alan
コメントに応じてコードを更新しました。誰もがすべての投稿を編集することが許可されている場合、私たちは大きな問題を抱えているでしょう:) – sunn0
これは内部関数呼び出しにも 'include_self = True'があるはずです。さもなければ、それぞれの再帰で、もう一度レベルを下げて、実際には何もrに加えないでください。その変更を加えた後、私は正しく機能しました。 – andy