我想过滤一个项目的_set,但是在下面的问题中,当我这样做时,它不在我认为的字段上。我需要使用 rating__rating 来获取 post 表中 rating 表的 rating 列。
在 django 中,我有这个:
class Story(models.Model):
user = models.ForeignKey(User)
...
class Post(models.Model):
post = models.TextField(max_length=345)
story = models.ForeignKey(Story)
...
class Rating(models.Model)
rating = models.IntegerField()
post = models.ForeignKey(Post)
然后我可以找到给定帖子的所有具有设定值的评级:
def getPostsForStory(id):
return arrangeCountOfRatings(Post.objects.filter(story=id))
def arrangeCountOfRatings(postList):
for post in postList:
post.rateA = post.rating_set.filter(rating=rateA).count()
return postList
但是我如何从给定的故事中做到这一点?也就是说,假设我想应用上述获取每个帖子的计数的过程,但是给定一个 Story 对象?
def getStoryItemsForUser(request):
return arrangeCountOfItems(Story.objects.filter(user=request.user.id)
def arrangeCountOfItems(storyList):
for story in storyList:
story.rateA = story.post_set.filter(rating=rateA).count()
return storyList
没有得到我想要的(计数都是错误的 - 要么为零,如果有带有评级的帖子,1
编辑:
啊。因此问题是:
story.rateA = story.post_set.filter(rating=rateA).count()
不搜索我想要的 - 它有效地搜索 rating__id 而不是 rating__rating
所以我只是将其更改为读取 rating__rating,简单。