1

階層形式 の3つのテーブルがあると考えてみましょう。

Course 
    Topic 
        Sub-Topic 

またはコードで:

class Course(models.Model):
    name            = models.CharField(max_length = 100)

class Topic(models.Model):
    name            = models.CharField(max_length = 100)
    course          = models.ForeignKey('Course' , null = True , blank = True)

class SubTopic(models.Model):
    name            = models.CharField(max_length = 100)
    topic          = models.ForeignKey('Topic' , null = True , blank = True)

私が欲しいのは、ナビゲーションシステムのようなツリーで表すコース、トピック、およびサブトピックのリストを取得することです。

私はそれがどんな深さでもselect_related()続いて発見できることを知っています。ForeignKeysシナリオでこの機能を使用するにはどうすればよいですか?

4

1 に答える 1

1

単にテンプレートに出力したい場合、たとえばコースのリストをテンプレートに渡した場合は、_setを使用できます。

{% for c in courses %}
    {{c.name}}
    {% for t in c.topic_set.all %}
       {{t.name}}
       {% for st in t.subtopic_set.all %}
           {{st.name}}
       {% endfor %}
    {% endfor %}
{% endfor %}
于 2012-07-09T10:33:09.823 に答える