1

假设我们有三个分层形式的表:

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 回答