如何在python django中过滤列表时跨越关系?

时间:2016-05-19 14:09:56

标签: python django list django-orm

我有一个名为UserInteraction的模型,它有一个外键,字段名称为interaction。然后,交互模型具有外键,字段名称为content。随后,Content模型具有FK,content_type,其具有名为is_scored的布尔字段。

我正在做的一些查询是:

user_interactions = UserInteraction.objects.filter(user=user).prefetch_related('interaction__content')

total_scored = user_interactions.filter(interaction__content__content_type__is_scored=True).count()

我的UserInteraction模型也有at_ended字段,基本上我必须按周分组UserInteraction模型。发布,我在列表中添加了每周分组数据(让我们将该列表称为每周)。因此,例如,每周包含第1周列表:[<UserInteraction: LG.2016/3/27@laugh.guru - Play School - 1>]和第2周列表:[<UserInteraction: LG.2016/3/27@laugh.guru - Vanilla - 1>, <UserInteraction: LG.2016/3/27@laugh.guru - Hyperlink - 1>]

组合的每周列表看起来像[[<UserInteraction: LG.2016/3/27@laugh.guru - Play School - 1>], [<UserInteraction: LG.2016/3/27@laugh.guru - Vanilla - 1>, <UserInteraction: LG.2016/3/27@laugh.guru - Hyperlink - 1>]]

对于每周,我想计算total_scored(已在查询集上计算 - 上面粘贴的代码)。

我想知道,我怎么能为名为'每周'的名单做到这一点?我尝试了很多使用列表理解技术,但是我在列表上使用过滤器(使用lambda)时找不到跨越关系的方法,当我在查询集上应用过滤器时,我可以这样做。

0 个答案:

没有答案