Django:FOO_set.all()用于filter()而不是get()
我想查找用户在我的Django应用程序中留下的项目的评论 模型非常简单: 型号.pyDjango:FOO_set.all()用于filter()而不是get(),django,model,foreign-keys,set,Django,Model,Foreign Keys,Set,我想查找用户在我的Django应用程序中留下的项目的评论 模型非常简单: 型号.py class Item(models.Model): name = models.CharField(_('Item'), max_length = 100,) ... class ItemReview(models.Model): item = models.ForeignKey(Item) review = models.CharField(max_length = 140
class Item(models.Model):
name = models.CharField(_('Item'), max_length = 100,)
...
class ItemReview(models.Model):
item = models.ForeignKey(Item)
review = models.CharField(max_length = 140)
...
在我的模板
中,我列出了从查看功能传递到模板的项
:
items = Item.objects.filter(name = ...)
在我的模板中,我列出了如下项目:
{% for item in items %}
<td>{{ item.name }}</td>
{% endfor %}
{items%]中的项的%
{{item.name}
{%endfor%}
如何在同一循环中显示评论?我已经尝试过FOO_set.all,但它似乎不适用于过滤功能。
这个问题看起来很简单,但我无法解决它。类项(models.Model):
class Item(models.Model):
name = models.CharField(_('Item'), max_length = 100,)
...
def reviews(self):
return ItemReview.object.filter(item=self)
class ItemReview(models.Model):
item = models.ForeignKey(Item)
review = models.CharField(max_length = 140)
{% for item in items %}
<td>
{{ item.name }}
{% for review in item.reviews %}
{{review}}
{% endfor %}
</td>
{% endfor %}
name=models.CharField(u('Item'),最大长度=100,)
...
def审查(自我):
returnitemReview.object.filter(item=self)
类ItemReview(models.Model):
项目=型号。外键(项目)
review=models.CharField(最大长度=140)
{items%%中的项的%s}
{{item.name}
{%用于在item.reviews%中进行审阅}
{{review}
{%endfor%}
{%endfor%}
当我在Django shell中尝试for循环时,我得到一条错误消息,AttributeError:“Item”对象没有属性“itemreview\u set”
。我做了a=Item.objects.all()
,a[0].itemreview\u set.all()
,这应该相当于您的循环,对吗?但是为什么我会收到错误信息呢?当我在模板中尝试代码时,{{review.review}}
是空的。