2011-04-15 48 views
1

我不明白,实用Django的项目87页下面的代码:从django.views.generic.list_detail进口object_list中Django的entry_set定义

def category_detail(request, slug): 
    category = get_object_or_404(Category, slug=slug) 
    return object_list(request, queryset=category.entry_set.all(), 
         extra_context={ 'category': category })) 

在这情况下来自entry_set

?它在哪里被定义?谢谢。

回答

2

这是created by the Entry model

如果模型具有ForeignKey,外键模型的情况下,将有机会获得一个Manager返回第一个模型的所有实例。默认情况下,此Manager被命名为FOO_set,其中FOO是小写的源型号名称。

+0

非常感谢! – Peter 2011-04-15 16:12:16

0

我没有我的副本在我面前,但_set属性通常是一个ForeignKey的结果。这些模型应该是这个样子:

class Entry(models.Model): 
    text = models.TextField() 
    ... 

class Category(models.Model): 
    entry = models.ForeignKey(entry) 
    ... 

所以如果你做对种类的查询,每个类别将有这将包含所有通过入门车型链接的数据entry_set。

+0

非常感谢。 – Peter 2011-04-15 16:50:03