让我们考虑一下,我们有三个分层形式的表:
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
。如何在我的场景中使用该功能?
答案 0 :(得分: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 %}