Django:从视图中添加类别

时间:2013-04-15 23:07:25

标签: django django-views

我有这个观点,对:

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

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

但是我收到了一个错误: Queryset没有属性Category

模型如下:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

您应该只使用第一个唯一索引属性(即id),因为如果有多个对象符合该条件,它将失败并显示错误。