0

我有这样的看法,对吧:

def thisviewright(request,pk):
   theadd = adds.objects.filter(id=pk)
   theaddlist = adds.objects.filter(category=add.category)
   return render_to_response..

我正在尝试获取类别,以便显示具有相同类别的所有其他添加。因为我没有从 URL 传递类别,所以我必须从 add 中获取它,我正在传递谁的 ID。

但我收到一个错误:查询集没有属性类别

模型如下:

class adds(models.Model):
title = models.CharField(max_length=255)
category = models.ForeignKey('categories')
...

class categories(models.Model):
title = models.CharField(max_length=255)

这么长的问题,我如何通过使用我传递的对象的类别从同一类别中获取相关的添加?

4

1 回答 1

1

在视图的第一行,您返回的是一个查询集,而不是一个对象。虽然此查询集将仅包含一个对象,但使用过滤器构造的其他查询集将具有多个成员。

要使用该行返回一个对象而不是查询集,请使用以下任一行:

theadd = adds.objects.get(id=pk)
theadd = adds.objects.filter(id=pk)[0]

您应该只在唯一索引属性(即 id)上使用第一个,因为如果有多个对象与条件匹配,它将失败并出现错误。

于 2013-04-15T23:14:33.987 回答