django entry_set定义

时间:2011-04-15 15:59:42

标签: python django

我不理解Practical Django Projects第87页的以下代码:

来自django.views.generic.list_detail import object_list

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 个答案:

答案 0 :(得分:2)

那是created by the Entry model

  

如果模型具有ForeignKey,则外键模型的实例将有权访问返回第一个模型的所有实例的Manager。默认情况下,此Manager名为FOO_set,其中FOO是源模型名称,小写。

答案 1 :(得分:0)

我没有我的副本,但_set属性通常是ForeignKey的结果。模型应该类似于:

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

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

因此,如果您对类别进行查询,则每个类别都会有一个entry_set,其中包含通过条目模型链接的所有数据。