2016-02-17 72 views
2

我有2个表(类别,文章),我认为我设定:获取嵌套/相关对象

categories = Category.objects.filter(site=4) 

,我可以在我的模板与

{% for cat in categories %} 
使用

但输出是:

- >类别1

- >第2类

- >类别3

如何为每个类别获取文章,例如此输出?

- >类别1

--->物品1

--->第2条

- >第2类

--->第1条

--->第2条

回答

5

取决于模型ArticleCategory相关的文章,因为如果您的模型中包含Article包含例如ForeignKeyCategory,然后在category例如使用category.article_set

class Category(models.Model): 
    ... 

class Article(models.Model): 
    category = ForeignKey(Category) # this adds a back ref that 
            # is by default called `article_set` 
            # into Category 

你可以做你得到一个related object reference到artciles:

{% for category in categories %} 
    {{ category }} 
    {% for article in category.article_set.all %} 
     {{ article }} 
    {% endfor %} 
{% endfor %} 
+0

我需要修改我的看法还是只模板? –

+0

在视图中,您可以只传递类似的查询集,就像您已经做过的那样,然后从模板中您可以通过'category.article_set'参考访问文章,因此视图函数 – bakkal

+0

中不需要更改,但_set是默认值或者我需要编辑它?因为我得到这个错误:无法解析余数:'()'from'category.article_set.all()' –