在Django模板中遍历外键相关表

32 投票
1 回答
22247 浏览
提问于 2025-04-15 12:20

视图

categories = Category.objects.all()
t = loader.get_template('index.html')
v = Context({
    'categories': categories
})
return HttpResponse(t.render(v))

模板

{% for category in categories %}
    <h1>{{ category.name }}</h1>
{% endfor %}

这个效果很好。现在我想把每个公司都打印出来,都是属于那个类别的。公司表里有一个外键指向类别表。

我试过

{% for company in category.company_set.all() %}

看起来Django在模板里不喜欢用()。

Django网站上信息太多了,我总是搞不清楚,.96、1.0和开发版之间的区别。我现在用的是Django 1.0.2版本。

1 个回答

52

只需要去掉括号就可以了:

{% for company in category.company_set.all %}

这里有个合适的文档。你可以用这种方式调用那些不需要任何参数的方法。

撰写回答