我不理解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
来自哪里?在哪里定义了?感谢。
答案 0 :(得分:2)
如果模型具有
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,其中包含通过条目模型链接的所有数据。