在DetailView中检索相关对象

时间:2014-04-11 09:59:32

标签: django

在我的DetailView中,我想根据我的url中的kwargs获取对象,并且还检索它的所有相关(foreignkey)值。

我用:

queryset = Category.objects.select_related() 
但是,在视图中,尝试使用

访问相关数据
{% for i in category.all %}

但是,渲染时模板中不显示任何内容。

我在模板中试过这个

{% for i in category.toolkit_set %} 

并且它说相关对象不可迭代

我有点兴奋,这是我的models.py:

class Category(models.Model):
    ....
    title = models.CharField(max_length=250)
    ....

class Toolkit(models.Model);
    ....
    category = models.ForeignKey('Category')

我希望获得每个slug的Category对象,并在一次db命中检索所有相关的相关数据。

1 个答案:

答案 0 :(得分:4)

首先,您必须使用相同的变量名来访问Category对象,就像在模板中的其他位置一样。通常在DetailView中,除非您已明确更改它,否则对象名称只是object

其次,您有两个独立的部分来访问相关对象 - _setall - 但您似乎没有将它们放在一起。

所以,它应该是:

{% for toolkit in object.toolkit_set.all %}