-1
out_links = Link.objects.filter(iweb=iweb_id).order_by('-pub_date')  
for link in out_links:
    comments = LinkComment.objects.filter(link=link.id)

Filter 方法创建对象列表,所以 out_links 是一个列表,对吧?

接下来,在 for 循环之后,我再次过滤以通过链接 ID 查找 LinkComments 类中的对象。

但是问题出现了,我应该将链接称为对象还是列表?只要是 django 的意见,我就不知道了?link.id还是link['id']?我的 python 说[ ],但 django 不起作用。

4

3 回答 3

3

out_links 是一个查询集,在 for 循环中,您可以通过以下方式访问所有 LinkComments:

for link in out_links:
    comments = link.linkcomment_set.all()
于 2012-06-01T14:53:57.167 回答
1

过滤器创建一个查询集,如文档中所述:https ://docs.djangoproject.com/en/dev/ref/models/querysets/#methods-that-return-new-querysets

如果您为 QuerySet 下标,例如comments[n],您将获得第 n 个成员(就像使用列表一样)。您有一个 order_by,即按照该子句指定的顺序。您不能使用下标符号按 id 查询。

当您遍历 QuerySet 时,您将获得查询集的成员,它们是 python 模型对象,您可以像在代码中的其他任何地方一样对待它们。

于 2012-06-01T14:58:59.213 回答
0

Filter 方法创建对象列表,所以 out_links 是一个列表,对吧?

错误的。它创建QuerySet 对象,它也恰好是一个可迭代对象。

于 2012-06-01T14:53:56.460 回答