在我的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命中检索所有相关的相关数据。
答案 0 :(得分:4)
首先,您必须使用相同的变量名来访问Category对象,就像在模板中的其他位置一样。通常在DetailView中,除非您已明确更改它,否则对象名称只是object
。
其次,您有两个独立的部分来访问相关对象 - _set
和all
- 但您似乎没有将它们放在一起。
所以,它应该是:
{% for toolkit in object.toolkit_set.all %}